氣泡排序只會操作相鄰的兩個資料。每次冒泡操作都會對相鄰的兩個元素進行比較,看是否滿足大小關係要求。如果不滿足就讓它倆互換。一次冒泡會讓至少一 個元素移動到它應該在的位置,重複n次,就完成了n個資料的排序工作。
舉個栗子:
我們要對一組資料4,5,6,3,2,1,從小到到大進行排序。第一次冒泡操作的詳細過程就是這樣:
可以看出,經過第一次排序之後,6這個元素已經在正確的位置。要想完成所有的排序,只需這樣的操作6次即可。
從上圖,可以發現,第二次排序,只需從剩下的5個數字當中,找到最大的數字,放在這5個數字的最後一位。
實際上,上述的氣泡排序還可以進行優化,每次在排序的時候,都是交換相鄰的兩個數的位置,使大的數在後面,如果當某一次排序的時候,發現本次排序,沒有進行資料位置的交換,其實就說明資料已經排好序了,這個時候,不需要進行下一輪的排序。
這個時候,我們只需要新增乙個標記位,來標記當前這一輪排序,是否有數字發生過位置交換。
// 氣泡排序,a表示陣列,n表示陣列大小
public void bubblesort(int a, int n)
}if (!flag) break; // 沒有資料交換,提前退出}}
排序演算法 氣泡排序
一.氣泡排序的過程 公升值排序 1.將第乙個記錄的關鍵字與第二個記錄的關鍵字進行比較,若key 1 key 2 則交換。然後比較第二個與第三個,依此類推,直到第n 1個與第n個比較為止,第一趟排序完後,記錄最大的關鍵字會被排在最後面。2.將記錄的前n 1個關鍵字進行第二趟比較交換,直到前n 1個中最...
排序演算法 氣泡排序
從基礎重新抓起。氣泡排序 每次從陣列頭到尾選出最大或者最小的,排到尾部或者頭部。以排序結果從小到大為例 每次從陣列中把最大的調換到末尾。eg.元素個數 count,需要找count 1次 外迴圈,最後一次不用再做比較了 每次從頭到末尾沒有確定的資料中找最大的 內迴圈 做法就是比較相鄰兩個元素的大小,...
排序演算法 氣泡排序
排序演算法是處理資料最基礎的演算法,掌握各種排序演算法有利以後遇到資料時的處理。首次學習,先學習氣泡排序。氣泡排序原理 對一組待排序資料x1,x2,x3,x4,x5,x6,x7.xn,氣泡排序演算法指標 這裡的指標並不是實際的指標,只是為方便而假象的乙個類似指標的東西 從第乙個資料開始,與其後面的乙...