基本概念
冒泡排序的基本概念是:依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即首先比較第1 個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。重復以上過程,仍從第一對數開始比較(因為可能由於第2個數和第3個數的交換,使得第1個數不再大於第2個數),將小數放前,大數放後,一直比較到最小數前的一對相鄰數,將小數放前,大數放後,第二趟結束,在倒數第二個數中得到一個新的最小數。如此下去,直至最終完成排序。
由於在排序過程中總是小數往前放,大數往後放,相當於氣泡往上升,所以稱作冒泡排序。
用二重循環實現,外循環變量設為i,內循環變量設為j。外循環重復9次,內循環依次重復 9,8,…,1次。每次進行比較的兩個元素都是與內循環j有關的,它們可以分別用a[j]和a[j+1]標識,i的值依次為1,2,…,9,對於每一個i, j的值依次為1,2,…10-i。
產生
在許多程序設計中,我們需要將一個數列進行排序,以方便統計,常見的排序方法有冒泡排序,二叉樹排序,選擇排序等等。而冒泡排序一直由於其簡潔的思想方法和比較高的效率而倍受青睐。
排序過程
設想被排序的數組R[1..N]垂直豎立,將每個數據元素看作有重量的氣泡,根據輕氣泡不能在重氣泡之下的原則,從下往上掃描數組R,凡掃描到違反本原則的輕氣泡,就使其向上”漂浮”,如此反復進行,直至最後任何兩個氣泡都是輕者在上,重者在下為止。
排序實現過程如下:
49 38 65 97 76 13 27
38 49 65 97 76 13 27 比較第1個和第2個數,小的放前邊,大的放後邊 38 49 65 97 76 13 27 比較第2個和第3個數,小的放前邊,大的放後邊 38 49 65 97 76 13 27 比較第3個和第4個數,小的放前邊,大的放後邊 38 49 65 76 97 13 27 比較第4個和第5個數,小的放前邊,大的放後邊 38 49 65 76 13 97 27 比較第5個和第6個數,小的放前邊,大的放後邊 38 49 65 76 13 27 97 比較第6個和第7個數,小的放前邊,大的放後邊 至此,第一趟比較結束,得到以下排序: 38 49 65 76 13 27 97
然後按照第一趟排序的方法繼續比較,直到完成排序。
= (345,4,17,6,52,16,58,69,32,8,234(=1;<();++(=()-1;>=;--([]<[-1 = [-1[-1] = [[] =