直接选择排序

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);
  }
}

posted on 2026-09-29 11:24  一水_001  阅读(7)  评论(0)    收藏  举报

导航