选择排序之简单选择排序:
假设一个序列表为L{1,2,....n},第i趟排序即是从L{i,i+1....n},每一次排序可以确定一个元素的最终位置,最终经过n-1次的过程,就可以将整个排序有序
伪代码如下:
void SelectionSort(EleType T[],int n){
for(int i=0;i<n-1;i++){
min=i;
for(int j=i+1;j<n;j++){
if(T[j]<T[min])
min=j;
if(min!=i){
swap(T[min],T[i]);
}
}
}
}
选择排序算法分析:
空间方面:需要常数个辅助单元,空间效率O(1);
时间方面:双层循环,时间复杂度是O(n^2);但是相对于冒泡排序算法,它的移动次数不会超多3(n-1)次,最好是0次,这是已经排好序。