当前位置: 代码迷 >> 综合 >> 十大简单排序:选择排序
  详细解决方案

十大简单排序:选择排序

热度:77   发布时间:2024-01-20 03:08:26.0

选择排序

思想:遍历一次数组,选择一个最小值,然后放到第一个位置,第二次遍历数组,再找到一个最小值,放入第二个位置,继续遍历数组,直到尾部,就把数组排好了。

void swap(int arr[],int i,int j)
{int tmp = arr[i];arr[i] = arr[j];arr[j] = tmp;
}void selectionSort(int arr[],int len)
{for(int i=0;i<len-1;i++){int minPos = i;for(int j=i+1;j<len;j++){if(arr[j] < arr[minPos]){    minPos = j;}}swap(arr,i,minPos);}
}

分析:

时间复杂度:O(N^2)

不稳定:两个相同的数,经过排序后,相对顺序可能会变化.比如在前面的可能会交换到后面.

选择排序是不稳定的排序。

  相关解决方案