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)
不稳定的排序
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个位置进行交换
}
}