首页 > 代码库 > 选择排序

选择排序

 1 /*选择排序*/ 
 2 #include <iostream>
 3 using namespace std;
 4 int main()
 5 {
 6     int n,i,j,a[n+1],d;
 7     cin>>n;
 8     cout<<"请输入"<<n<<"个数进行排序:"<<endl;
 9     for(i=1;i<=n;i++)//输入n个数字 
10     {
11         cout<<""<<i<<"个数"<<endl;
12         cin>>a[i]; 
13     }
14     for(i=1;i<n;i++)//进行n-1轮比较 
15     {
16         d=i;//选择每轮第一个为假定最大数 
17         for(j=i+1;j<=n;j++)//将假定的最大数与其后的数一一比较 
18         {
19             if(a[j]>a[i])//选出其后的最大值 
20             d=j;//做标记 
21         }
22         if(d!=i)//判断是否有比假定数大的数存在,有,就把他和假定数互换 
23         {
24             int temp;
25             temp=a[i];
26             a[i]=a[d];
27             a[d]=temp;
28         }
29     }
30     for(i=1;i<=n;i++)//输出从大到小排好序的n个数 
31     {
32         cout<<a[i]<<" ";
33     }
34     return 0;
35 }

 

选择排序