冒泡排序作為學習排序最基本的算法,具有穩(wěn)定性與實用性。
下面是C語言冒泡排序的源代碼
#includeint main(void) { int a[10]={6,4,3,2,7,8,9,10,1,5}; int i,k,w; for(i=0;i<9;i++) { for(k=0;k<9-i;k++) { if(a[k]>a[k+1]) { w=a[k]; a[k]=a[k+1]; a[k+1]=w; } } } for(i=0;i<10;i++) { printf("%d ",a[i]); } }
以下是輸出的結果
下面進行代碼講解:
如果前一位的數(shù)字大于后一位的,那么這兩個數(shù)字交換位置,因此,最大的數(shù)字在第一輪循環(huán)中不斷像一個氣泡一樣向上冒,在第一輪循環(huán)結束后排在最后一個(最右邊),接著進行下一輪循環(huán),由于這個最大的數(shù)在第一輪循環(huán)中已經(jīng)打遍天下無敵手,大家認可了它的實力,第二輪比武他就可以不用參與了,則我們比較的次數(shù)變成9-1=8->我們得到了節(jié)省內(nèi)存的算法,由此類推,數(shù)字一個個排序進行。
Warning:
博主在期末考試的時候犯了一個傻乎乎的錯誤,內(nèi)外層循環(huán)變量整的一樣的,結果人家i循環(huán)了一遍跑了(詳情請看上面的代碼)提醒大家不要犯錯哦