Chinaunix首页 | 论坛 | 博客
  • 博客访问: 533423
  • 博文数量: 129
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1888
  • 用 户 组: 普通用户
  • 注册时间: 2013-06-20 11:09
文章分类

全部博文(129)

文章存档

2016年(1)

2015年(5)

2014年(64)

2013年(59)

我的朋友

分类: C/C++

2013-08-25 15:17:30

选择排序的基本思想是:每一趟在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. }

  


阅读(888) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~