直接选择排序
1、介绍
直接选择排序是一种简单的排序方法。它的基本思想是:每次从待排序的无序区中选择出关键字值最小的记录,将该记录与该无序区中第一个记录交换位置。初始时, R[1......n] 为无序区,有序区为空。第一趟排序是在 R[1......n] 中挑选关键字最小的记录,将它与 R[1] 交换,R[1]为有序区;第二趟排序是在 R[2......n] 中挑选关键字最小的记录,将它与 R[2] 交换,此时 R[1......2] 为有序区;以此类推,经过 n-1 趟排序后,R[1......n] 中的记录按递增有序。
具体算法描述如下:
//直接选择排序
void SelectSort(int List[],int n)
{
int i,j,k;
for(i=1;i<n;i++)
{
k = i;
for(j=i+1;j<=n;j++)
{
if(List[k]>List[j])
{
k = j;
}
}
if(i!=k)
{
List[0] = List[i];
List[i] = List[k];
List[k] = List[0];
}
display("SelectSort",i,List,n);
}
}
浙公网安备 33010602011771号