直接选择排序

来源:互联网 发布:丰城网络问政有用吗 编辑:程序博客网 时间:2024/04/30 08:06
直接选择排序的作法是:第一趟扫描所有数据,选择其中最小的一个与第一个数据互换;第二趟从第二个数据开始向后扫描,选择最小的与第二个数据互换;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。 

算法:
void selectsort(int a[],int n)
{
  int i,j,p,temp;
  for(i=1;i<=n-1;i++)   //从第1个记录开始到倒数第2个结束
  {
    p=i;   //准备
    for(j=i+1;j<=n;j++)  //第i个记录后开始到最后个结束,同时找到最小元素,下标为p表示
     if(a[p]>a[j])      
        p=j;    //确定为最小,
    if(p!=i)  //循环结束后,p为标记最小元素的下标,检查是否是同一数,如果不是,交换
    {
     x=r[k]; 
     r[k]=r[i]; 
     r[i]=x;
    }
  }
}
原创粉丝点击