选择排序之简单选择排序:

假设一个序列表为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次,这是已经排好序。