简单选择排序
假设排序表为L[1...n],第i趟排序即从L[i...n]中选择关键字最小的元素与L(i)交换,每一趟排序即可确定一个元素的最终位置,这样经过n-1趟排序就可以使得整个排序表有序。
void SelectSort(ElemType A[], int n){for(i=0; i<n-1; i++)//一共进行n-1趟{min=i;//记录最小元素的位置for(j=i+1; j<n; j++)//在A[i...n-1]中选择最小的元素{if(A[j]<A[min])min=j;//更新最小元素的位置}if(min!=j)swap(A[i], A[min]);//与第i个位置进行交换}}
时间复杂度o(n^2)
不稳定的排序
浙公网安备 33010602011771号