美文网首页
数据结构-选择排序

数据结构-选择排序

作者: 羽裳有涯 | 来源:发表于2020-03-17 09:10 被阅读0次

原理

选择排序的工作原理是: 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

性能分析(稳定性)

选择排序的时间复杂度为O(n²),由于每次选择仅考虑某一位置上的数据情况,可能会破坏之前数据的相对位置,因此它是一种不稳定的排序方法。

工作原理

  • 1、第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,
  • 2、然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。
  • 3、以此类推,直到全部待排序的数据元素的个数为零。

/**总结:对于一组数据,每一次待排序的数据元素中,选择最小的,放在序列的起始位置。知道全部待排序的数据元素排完**/

//选择排序
void select_sort(int *array, int length) {
    int temp;
    for (int i = 0; i< length - 1; i++) {
        for (int j = i + 1; j <length; j++) {
            if (array[i] > array[j]) {
                temp = array[i];
                array[i] = array[j];
                array[j] = temp;
            }
        }
    }
    printf("\n排序后:");
    for (int i = 0; i< length; i++) {
        printf("%d ", array[i]);
    }
}

相关文章

  • C语言:关于数据的几种排序算法

    数据结构的排序算法有很多种。其中,快速排序、希尔排序、堆排序、直接选择排序不是稳定的排序算法;基数排序、冒泡排序、...

  • 排序

    一、选择排序 1.堆排序 定义:堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序可参考http...

  • 021-数据结构与算法-排序

    基础方法或者数据结构的定义: 冒泡排序 选择排序 插入排序 希尔排序 希尔排序思想: 希尔排序是把记录按下标的一定...

  • 玩转算法面试:(三)LeetCode数组类问题

    数组中的问题其实最常见。 排序:选择排序;插入排序;归并排序;快速排序查找:二分查找法数据结构:栈;队列;堆…… ...

  • 算法(3)- 数组

    数组中的问题其实最常见如:排序(选择排序、插入排序、归并排序、快速排序)、查找(二分查找法)、数据结构(栈、队列、...

  • 算法与数据结构路线图

    学习算法与数据结构,深刻理解计算机科学 排序算法:插入、冒泡、选择、希尔、快速、归并、堆排序、计数排序、桶排序、基...

  • 2019-07-16

    数据结构排序 单链表上的简单选择排序 判断一个堆是不是小顶堆

  • 堆排序

    预备知识 堆排序 堆排序(heap sort)是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的...

  • 常见排序

    近来要校招了,基本的排序还是需要掌握的。数据结构,算法永远都是写出好程序的基本功。 冒泡排序 选择排序 插入排序 ...

  • 2018-06-30

    排序算法之堆排序 堆排序是利用堆的数据结构而设计的一种排序算法,堆排序是一种选择排序。可以利用数组的特点快速定位制...

网友评论

      本文标题:数据结构-选择排序

      本文链接:https://www.haomeiwen.com/subject/ctjzehtx.html