在演算法中,有一個功能經常需要,就是排序,從小到大排序,或從大到小排序。
一。氣泡排序
1。需求:把一個字串或陣列的內容從小到大排序;
2。模擬:按照冒泡模擬:
假設陣列有 3, 2,7,4,1 要從小到大排序
冒泡過程1:
3和2比較,3大,因此1。1次互換位置:2,3,7,4,1
3和7比較,7大,因此1。2次不換位置:2,3,7,4,1
7和4比較,7大,因此1。3次互換位置:2,3,4,7,1
7和1比較,7大,因此1。4次互換位置:2,3,4,1,7
第一輪冒泡,最大的7已經冒到最上面
冒泡過程2:
2和3比較:3大,因此2。1 不換位置,2,3,4,1,7
3和4比較,4大,因此2。2 不換位置,2,3,4,1,7
4和1比較,4大,因此2。3 互換位置,2,3,1,4,7
4和7比較,7大,因此2。4 不換位置
第二輪冒泡,最大4已經冒出來
冒泡過程3:
2和3比較, 3大,因此3。1 不換位置,2,3,1,4,7
3和1比較, 3大,因此3。2 互換位置 2,1,3,4,7
3和4比較,4大,因此3。3 不換位置
4和7比較,7大,因此3。4不換位置
冒泡過程4:
2和1比較,2大,因此4。1換位置,1,2,3,4,7
2和3比較,3大,。。。
3和4比較,4大。。。
4和7比較,7大
3。抽象:
把上面過程抽象,則有2個迴圈,都是從頭到尾迴圈
i=0-5; 外圍迴圈, 迴圈次數為最大字元數;
j=1-5; 內部迴圈,只要str[j]>str[j+1], 就swap;
注意:迴圈次數為j+1<最大字元長度;
聲名:以上內容為 七里稻田 原創
如果需要C語言全課程, 可以留言/或私信。
將提供C語言全課程,可以免費體驗,或支付9。9元,即可購買課程,獲得課程所有程式原始碼。並提供線上疑問解決3個月。