C 冒泡排序和選擇排序

來源:互聯網
上載者:User

標籤:基本   .com   play   分析   第一個   技術分享   cpp   margin   height   

 

冒泡排序

  

      理論: 從第一個數開始,將相鄰的兩個數比較,第一個數和第二個數比較.....,要是是從小到大的排序,要是後面的數比前面的大則交換兩個的位置,這樣第一輪比較基數後最大的數就到了最後面,接著進行第二趟的比較,比較到前面N-1個數,原理也是前面的那樣,大的往後面不停的排,直到比較到前面只剩下一個數的時候,就完成了排序,這就是冒泡的原理:

      下面用這個圖代表一下虛擬碼,畫一下流程,說實話,在學校學習的時候,我連這個圖都不理解!

     

 

 

冒泡排序的代碼:

#include "stdio.h"#define N 10int main(){      int a[N];      int i,j,t;      printf("請輸入您要排序的%d 數字\n",N);      /*輸入十個數*/      for(i=0;i<N;i++)        scanf("%d",&a[i]);       /*冒泡*/      for(j=0;j<N-1;j++){        for(i=0;i<N-j;i++){           if(a[i] > a[i+1]){               t = a[i];               a[i] = a[i+1];               a[i+1] = t; }}}     printf("排序的結果是:");     for(i=0;i<N;i++){        printf("%d ",a[i]);     }}

 

下面是寫的過程中出現的錯誤分析:

 

 

選擇排序 

 

      理論:這個選擇排序一起在上學的時候,感覺就是死腦子,就是有點轉不過來彎,就是不理解,說的感覺大學白上了,我故事是被大學白上了,被玩了四年出來發現自己啥都不懂,哈哈哈。。。可能是那時候笨吧,現在說說這個原理,選擇排序,就像是打擂台一樣,我們先選第一個位置的數為基準位置,後面的一個一個挑戰,(比如我們從小到大排序),要是第二個數比第一個數小,則換擂主,第三個比第二個又小,再換,直到一輪比賽結束,找到最小的在前面,接著我們開始第二輪,第二輪以第二個數為基準。後面的一次比較。。直到最後一個數,這樣就整個排序過程出來了,無聊在畫個圖:

 

 

下面是基本的代碼部分:

     

#include "stdio.h"#define N 10int main( ){   int i,j,t,k;   int a[N];    printf("請輸入你要排序的%d個整數",N);   for(i=0;i<N;i++)      scanf("%d",&a[i]);   /*注意這裡不能寫成N 不然下面的 j 會越界*/   for(i=0;i<N-1;i++){      k=i;      for(j=i+1;j<N;j++){         if(a[k]>a[j])  k=j;      }      if(k!=i){         t= a[i];         a[i] = a[k];         a[k] = t;      }   }  printf("最終排序的結果是:");     for(i=0;i<N;i++)      printf("%d ",a[i]);}

 

上面就OK,這裡沒有什麼錯,最後看一下結果:

  

C 冒泡排序和選擇排序

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.