简单选择排序算法的实现

930阅读 0评论2013-08-25 double_lq
分类:C/C++

选择排序的基本思想是:每一趟在n-i+1(i=1,2,...n-1)个记录中选取关键字最小的记录作为有序序列中的第i个记录。一趟选择排序的操作位:通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录交换。

实现代码如下:
    
  1. //直接选择排序
  2. #include<iostream>
  3. using namespace std;

  4. void swap(int &a,int &b)
  5. {
  6.     int tmp;
  7.     tmp=a;
  8.     a=b;
  9.     b=tmp;
  10. }

  11. void SelectSort(int array[],int n)
  12. {
  13.     int i,j,min;
  14.     for(i=0;i<n-1;i++)
  15.     {
  16.      min=i;
  17.         for(j=i+1;j<n;j++)
  18.         {
  19.          if(array[j]<array[min])
  20.                 min=j;
  21.         }
  22.         if(min!=i)
  23.             swap(array[i],array[min]);
  24.     }
  25. }

  26. int main()
  27. {
  28.     int i;
  29.     int a[10];
  30.     printf("please input the array:\n");
  31.     for(i=0;i<10;i++)
  32.         scanf("%d",&a[i]);
  33.     SelectSort(a,10);
  34.     for(i=0;i<10;i++)
  35.         cout<<a[i]<<" ";
  36.     return 0;
  37. }

  


上一篇:Ubuntu12.04下手动编译与安装Emacs24.3
下一篇:用直接选择排序实现查找最小的K个数