1. 程式人生 > >C語言--氣泡排序法(詳細註釋)

C語言--氣泡排序法(詳細註釋)

     博主剛本科畢業,最近在寫程式的時候要將10000個數據進行排序,因為是學控制方向的,之前也沒接觸過這麼大資料量的排序,所以最先想起來的還是冒泡法,但發現頗為耗時。因此準備趁現在暑假,好好再複習複習一些基礎演算法,也為之後工作打好點基礎。

     今晚是第一篇,還是上我最熟悉的氣泡排序了,之後學到更多的演算法也會寫在部落格裡,也會新增最淺顯易懂的註釋,一方面方便自己以後回顧,另一方面也方便大家互相交流學習。

十個整型數的冒泡法排序<由小到大> -- C語言

#include "stdio.h"

void main()
{ 
      int a[10]; 
      int i, j, temp; 

      // 輸入10個整型資料 
      printf("Please input ten numbers: \n"); 
      for (i = 0; i < 10; i++) 
            scanf("%d", &a[i]); 

      // 排序 
      for (i = 0; i < 9; i++) // 10個數,10 - 1輪冒泡,每一輪都將當前最大的數推到最後 
      { 
            for (j = 0; j < 9 - i; j++) // 9 - i,意思是每當經過一輪冒泡後,就減少一次比較 
            if (a[j] > a[j+1]) 
            { 
                  temp = a[j]; 
                  a[j] = a[j+1]; 
                  a[j+1] = temp; 
            } 
      } 
  
      // 列印排序結果 
      for (i = 0; i < 10; i++) 
            printf("%d\n", a[i]); 
    
      return 0; 
}