0023 用冒泡排序算法对20个数进行排序后输出,并输出每个元素多对应的原来的次序...

问题描述:

  用冒泡排序算法对20个数进行排序后输出,并输出每个元素多对应的原来的次序

代码展示:

 1 #include
 2 void BubbleSort(int a[][20]);
 3 int main(){
 4     int a[2][20];
 5     int i,j;
 6     int x;
 7     for(i=0;i<20;i++){
 8         a[0][i] = i+1;
 9     }
10     for(i=0;i<20;i++){
11         scanf("%d",&a[1][i]);
12     }
13     BubbleSort(a);
14     printf("排序后的序列为:"); 
15     for(i=0;i<20;i++){
16         printf("%d ",a[1][i]);
17     }
18     printf("\n排序后的序列的原次序为:"); 
19     for(i=0;i<20;i++){
20         printf("%d ",a[0][i]);
21     }
22     
23     return 0;
24 } 
25 void BubbleSort(int a[][20]){
26     int flag;
27     int i,j;
28     int temp;
29     for(i=0;i<20;i++){
30         flag = 1;
31         for(j=1;j<20-i;j++){
32             if(a[1][j-1]>a[1][j]){
33                 temp = a[1][j-1];        //元素交换 
34                 a[1][j-1] = a[1][j];
35                 a[1][j] = temp;
36                 temp = a[0][j-1];        //位序交换 
37                 a[0][j-1] = a[0][j];
38                 a[0][j] = temp;
39                 flag = 0;
40             }
41         }
42         if(flag == 1){
43             return;
44         }
45     }
46     return;
47 }

运行截图:

0023 用冒泡排序算法对20个数进行排序后输出,并输出每个元素多对应的原来的次序..._第1张图片

你可能感兴趣的:(程序练习,算法,数据结构,排序算法,c语言,快速排序)