氣泡排序 java

2021-09-22 21:31:30 字數 987 閱讀 9136

氣泡排序:

基本思想:

從無序序列頭部開始,進行兩兩比較,根據大小交換位置,直到最後將最大(小)的資料元素交換到了無序佇列的隊尾,從而成為有序序列的一部分;下一次繼續這個過程,直到所有資料元素都排好序。

演算法的核心在於每次通過兩兩比較交換位置,選出剩餘無序序列裡最大(小)的資料元素放到隊尾。

使用雙迴圈的方式進行排序

外部的迴圈控制所有回合,內部迴圈代表每一輪的冒泡處理,先進行元素比較,在進行元素交換

n個數比較n-1次,第一趟的時候:比較n-1次,第j趟,比較n-j趟,因為每一次末尾都會有一較大的元素排序

時間複雜度:

1.當原始序列「正序」排列時,氣泡排序總的比較次數為n-1次,移動次數為0,也就是說氣泡排序在

最好情況下的時間複雜度為

o(n);

2.當原始序列「逆序」排序時,

氣泡排序總的比較次數為n(n-1)/2,移動次數為3n(n-1)/2次,所以氣泡排序在

最壞情況下的時間複雜度為

o(n^2);

3.當原始序列雜亂無序時,氣泡排序的

平均時間複雜度為

o(n^2)。

空間複雜度:

氣泡排序排序過程中需要乙個臨時變數進行兩兩交換,所需要的額外空間為1,因此

空間複雜度為

o(1)。

穩定性:

氣泡排序在排序過程中,元素兩兩交換時,相同元素的前後順序並沒有改變,所以氣泡排序是一種

穩定排序演算法。

原始的演算法**:

改進的演算法**:

設定乙個標誌位flag:

作用:如果不發生交換則說明此序列現在為有序狀態

java 氣泡排序

氣泡排序 bubble sort 是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。氣泡排序演算法的...

Java氣泡排序

氣泡排序 bubble sort 是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。氣泡排序演算法的...

java 氣泡排序

氣泡排序 氣泡排序演算法的運作如下 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較...