冒泡与比较排序

未经过优化的冒泡和比较排序,有时间再学习如何优化效率;

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int a[10];
 5     printf("plz enter 10 numbers:\n");
 6     for(int i=0;i<10;i++)
 7     {
 8     scanf("%d",&a[i]);
 9     }
10     void sort_f(int*k,int n); 
11     void sort_c(int *k,int n);
12     sort_f(a,10);
13     sort_c(a,10);
14     return 0;
15 }
16 
17 void sort_f(int *k,int n)              //冒泡排序 
18 {
19     int t;
20     for(int i=0;i<n-1;i++)                //n个数,外层for控制趟数,共(n-1)趟 
21     for(int j=0;j<n-1-i;j++)              //内层for控制每一趟的比较次数,为(n-1-i)次 
22     {
23         if(k[j]<k[j+1])                   //这里表示的是小数沉底,即从左到右为从大到小 
24         {t=k[j]; k[j]=k[j+1];k[j+1]=t;    //三变量交换两个数 
25         } 
26     }
27     printf("the ans of sort_f is\n") ;
28     for(int i=0;i<n;i++)
29     {if(i<9)
30     printf("%3d",k[i]); 
31     else printf("%3d\n",k[i]);
32     }                                     //打印,为了好看在末尾加了一个换行符 
33 }
34 
35 void sort_c(int *k,int n)                 //比较排序 
36 {
37     
38     for(int i=0;i<n-1;i++)                //外层for同样控制(n-1)趟 
39     {
40         int p=i; int t;                   //假设当前第一个数(下标为i)为最大数,用p变量存储最大数下标 
41         for(int j=i+1;j<n;j++)            //从i+1开始一直遍历到n, 
42         {
43             if(k[p]<k[j])                 //若之后出现比原来假设的数大的话,更新 p 
44             p=j;
45         }
46         if(p!=i) {t=k[i];k[i]=k[p];k[p]=t; //关键:因为p是当前循环最大数的下标,判断p和第一个数下标(i)是否相等, 
47         }                                  //若不等,则之后出现了比第一个数大的数,三变量交换之,若相等,则第一个数 
48                                            //就是最大数 。 
49     } 
50     printf("the ans of sort_c is\n");      //退出内循环进入下一轮外循环,确保每一趟开头那个数是最大数 
51     for(int i=0;i<n;i++)
52     printf("%3d",k[i]);                    //打印 
53     
54 }

exmple:

I'm wanted for addiction

She's feeling for a thrill

We've been scream for attention

And any little thing to numb this hell

Oh every now and then I like to get me some to get me some

Oh even though it's just a face

Oh know I feel like I've been in a hit and run this shit ain't fun

I'm still here and you've got my aim

I've got whiskey and morphine

Rushing through me

The stairs are moving quicker than I'm running, And I'm tripping over absolutely nothing.

Thanks to Whiskey and morphine

I'm up and away up and away up and away.

I'll finish every bottle

Till I'm empty on the floor

Then do it all again tomorrow Mmm

And any little thing to numb this hell

 

posted @ 2017-12-21 11:50  Rohlf  阅读(366)  评论(0编辑  收藏  举报