冒泡法排序

2022-12-13 15:51:06 字數 1285 閱讀 6569

/* 用氣泡排序法對一維整型陣列中的十個數公升序排序 */

#include <>

int main()

printf("the sequence after sort is:\n");

for(i=0;i<10;i++)

printf("%-5d",a[i]);

printf("\n");

system("pause");

return 0;

} 其中i=0時:

j從0開始a[0],a[1]比較大小,把其中的較大者給a[1],然後j++,a[1]和a[2]再比較,再把兩者中的

較大者給a[2],這樣a[0],a[1],a[2]中的最大者已經交換到a[2]中,這樣繼續直到j=10-i-1=9這樣

a[9]中的為10個數中的最大數。

然後i=1時:

由於最大數已找到並放到a[9]中,所以這一次迴圈j最大只需到10-i-1=8,即a[8]即可,再次從j=0開始a[j]和a[j+1]兩兩比較交換,最後次大數放到a[8]中

然後i++,繼續...

當i=9時已經過9次兩兩比較完成所有排序,i<9不再成立退出比較。

對於n個數,只需要進行n-1次外迴圈的兩兩比較就完成排序。

至於按降序排列只需將if(a[j]>a[j+1])改為if(a[j]/* 用改進型氣泡排序法對一維整型陣列中的十個數公升序排序 */

#include <>

int main()

if(flag==0)break;

} printf("the sequence after sort is:\n");

for(i=0;i<10;i++)

printf("%-5d",a[i]);

printf("\n");

system("pause");

return 0;

} 這個和上面的實質一樣,只是加了乙個標誌flag,當在一次大迴圈(即外層迴圈)內,在內層迴圈中如果沒有發生一次交換,那麼就表示a[0]' //起泡法

'void sorting_q (uint *p,int c,int a,char b )

' '}

//呼叫形式:函式名(陣列名,下標起始值,下標結束值,字元常量)

// 陣列名: 要進行排序的陣列名

// 下標起始值: 排序的範圍從該下標值起

// 下標結束值: 到該下標結束,在這範圍外的不動.

// 字元常量: 排序方法.'<' :從小到大排序, '>' :從大到小排序

這個才是排序演算法中起泡法的絕世經典!!

看不懂的估計學c語言也沒戲了

C經典演算法 氣泡排序 選擇排序 插入排序 希爾排序

public void bubblesort int r 本趟排序未發生交換,提前終止演算法 if exchange 氣泡排序 本人用了c 開發出氣泡排序演算法。希望能為c 語言的學習者帶來一些益處。不要忘了,學語言要花大力氣學資料結構和演算法。using system namespace bubb...

Java之氣泡排序方法例項講解

氣泡排序 bubble sort 最簡單的排序方法是氣泡排序方法。這種方法的基本思想是,將待排序的元素看作是豎著排列的 氣泡 較小的元素比較輕,從而要往上浮。在氣泡排序演算法中我們要對這個 氣泡 序列處理若干遍。所謂一遍處理,就是自底向上檢查一遍這個序列,並時刻注意兩個相鄰的元素的順序是否正確。如果...

C語言程序設計氣泡排序教學案例

永川職業教育中心楊進 案例背景 排序是計算機學科中一項複雜而重要的技術,在各種軟體中使用頻率都很高,因此專家們研究了各種排序演算法。在中職類設計課程教學中,常以氣泡排序來講解排序的原理,它簡單,但過程繁瑣,傳統教學很難激發學生興趣,學生不易理解,也很難編寫掌握氣泡排序。因此,如何合理設計教學過程,讓...