冒泡排序

车厢重组

对基本冒泡排序进行了优化(具体体现在exchange、bound)

详情可参考我的一篇csdn博客--》排序系列

 1 #include<iostream>
 2 #include<cstring>
 3 
 4 using namespace std;
 5 const int N=10005;
 6 
 7 int main(){
 8     //冒泡排序
 9     int a[N],ans=0;
10     cin>>a[0];
11     for(int i=1;i<=a[0];i++)
12         cin>>a[i];
13     int exchange=a[0],bound;
14     while(exchange!=0){
15         bound=exchange;
16         exchange=0;
17         for(int i=1;i<bound;i++){
18             if(a[i]>a[i+1]){
19                 int tmp=a[i];
20                 a[i]=a[i+1];
21                 a[i+1]=tmp;
22                 exchange=i;
23                 ans++;
24             }
25         }
26     }
27     cout<<ans;
28     return 0;
29 }

 

posted @ 2021-08-01 17:58  Rekord  阅读(21)  评论(0编辑  收藏  举报