简单选择排序
假设排序表为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)
不稳定的排序