小白学算法2.2——选择排序

来源:互联网 发布:php implode 什么意思 编辑:程序博客网 时间:2024/06/16 00:59

小白学算法2.2——选择排序

标签: 小白学算法


小白学算法2.x全部为排序算法
本节所有排序算法按照从小到大排序

1.选择排序算法

选择排序属于初级排序,时间复杂度为O(n2)n个数进行选择排序,需要n-1次排序,每次排序把最小的数和最左边的数进行交换。

2.选择排序实现

void bubbleSort(int* A, int n) {    for (int i=0; i<n-1; i++)//排n-1次    {        int min = i;        for (int j=i+1; j<n; j++)//找出最小数的下标            if (A[j] < A[min])                min = j;        swap(A, min, i);//交换A[min]和A[i]元素的值    }}

3.总结

  • 对于长度为n的数列,选择排序需要大约n2/2次比较和n次交换
  • 选择排序的运行时间和输入无关
  • 选择排序移动元素的次数是最少的
  • 选择排序是不稳定排序
  • 选择排序属于初级排序,时间复杂度为O(n2),当数据量较大时,建议采用高级排序
  • 随机数据量较大时,选择排序比冒泡排序快,笔者猜测冒泡排序交换次数太多,导致运行时间较长
0 0
原创粉丝点击