氣泡排序知多少

2021-10-10 05:38:28 字數 1098 閱讀 3769

氣泡排序只會操作相鄰的兩個資料。每次冒泡操作都會對相鄰的兩個元素進行比較,看是否滿足大小關係要求。如果不滿足就讓它倆互換。一次冒泡會讓至少乙個元素移動到它應該在的位置,重複 n 次,就完成了 n 個資料的排序工作。

1. 比較相鄰的兩個元素。如果第乙個比第二個大,就交換他們兩個。

2. 對每一對相鄰元素作同樣的操作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

3. 針對所有的元素重複以上的步驟,除了最後乙個。

4. 持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比

最好情況下,要排序的資料已經是有序的了,我們只需要進行一次冒泡操作,就可以結束了,所以最好情況時間複雜度是 o(n)。而最壞的情況是,要排序的資料剛好是倒序排列的,我們需要進行 n 次冒泡操作,所以最壞情況時間複雜度為 o(n2)

冒泡的過程只涉及相鄰資料的交換操作,只需要常量級的臨時空間,所以它的空間複雜度為 o(1),是乙個原地排序演算法

public static void bubblesort(int arrpre) 

system.out.println();

int length = arrpre.length;

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

for (int e : arrpre)

system.out.println();}}

}

當某次冒泡操作已經沒有資料交換時,說明已經達到完全有序,不用再繼續執行後續的冒泡操作

public static void bubblesort(int arrpre) 

system.out.println();

int length = arrpre.length;

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

for (int e : arrpre)

system.out.println();

}if (!flag) }}

排序知多少 氣泡排序詳解

1 對元素進行兩次遍歷 2 第一次遍歷所有元素 3 第二次判斷當前元素是否比之後的元素大,如果大則交換位置,否則不動 氣泡排序是一種常用的排序演算法。從思路理解上比插入排序 快排 歸併排序都要簡單。就是做兩次巢狀迴圈,一旦發現前面的數比後面的數大,就交換位置。像氣泡從水裡公升上來一樣,越往上氣泡越大...

排序知多少 堆排序詳解

堆是具有下列特性的完全二叉樹 每個節點的值都大於或等於其左右孩子的節點的值,成為大頂堆,或者每個節點的值都小於或等於其左右孩子節點的值,成為小頂堆。在選擇到最小記錄同時,並根據比較結果對其他記錄做出相應調整。這樣的排序整體效率非常高。堆排序 heap sort 就是利用堆進行排序的方法。他的基本思想...

閘道器知多少

閘道器 gateway 顧名思義,就是乙個網路到另乙個網路的關口。維基百科對閘道器的定義為 在計算機網路中,閘道器 gateway 是 其他伺服器通訊資料的伺服器,接收從客戶端傳送來的請求時,它就像自己擁有資源的源伺服器一樣對請求進行處理。但是,很多時候,我們會將路由器和閘道器認為是同乙個概念。其實...