氣泡排序是一種最基礎也是最簡單的排序演算法,它是一種穩定排序演算法,其平均時間複雜度為o(
n2) on2
,空間複雜度為o(
1)o1
,是一種原地排序演算法。
氣泡排序的思想其實很簡單,就是從最後乙個元素開始,依次與其前面的元素作比較,如果位置錯誤就交換位置,否則不採取操作,一直到第乙個元素,此時第乙個元素一定是最大(最小)的元素;然後重複上述操作一直到第二個元素;然後一直對越來越少的元素進行比較和交換位置;直到所有元素都不再需要比較,排序完成。
該示例為從小到大排序
1234567
publicvoid
bubblesort
(int a)
}}
1234567
891011
1213
1415
1617
1819
2021
origin:2 1 6 4 9 5 3 1 7 8
process:
2 1 6 4 9 5 1 3 7 8
2 1 6 4 9 1 5 3 7 8
2 1 6 4 1 9 5 3 7 8
2 1 6 1 4 9 5 3 7 8
2 1 1 6 4 9 5 3 7 8
1 2 1 6 4 9 5 3 7 8
1 2 1 6 4 9 3 5 7 8
1 2 1 6 4 3 9 5 7 8
1 2 1 6 3 4 9 5 7 8
1 2 1 3 6 4 9 5 7 8
1 1 2 3 6 4 9 5 7 8
1 1 2 3 6 4 5 9 7 8
1 1 2 3 4 6 5 9 7 8
1 1 2 3 4 6 5 7 9 8
1 1 2 3 4 5 6 7 9 8
1 1 2 3 4 5 6 7 8 9
result:
1 1 2 3 4 5 6 7 8 9
Java排序演算法之氣泡排序
package demosort 在要排序的一組數中,對當前還未排好序的範圍內的全部數,自上而下對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。即 每當兩相鄰的數比較後發現它們的排序與排序要求相反時,就將它們互換。public class bubblesort int temp 0...
Java排序演算法之氣泡排序
1.比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。2.對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。3.針對所有的元素重複以上的步驟,除了最後乙個。4.持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。public cl...
Java排序演算法之氣泡排序
基本處理思想是通過對相鄰兩個資料的比較及其交換來達到排序的目的。首先,將 n 個元素中的第乙個和第二個進行比較,如果兩個元素的位置為逆序,則交換兩個元素的位置 進而比較第二個和第三個元素關鍵字,如此類推,直到比較第 n 1 個元素和第 n 個元素為止 上述過程描述了起泡排序的第一趟排序過程,在第一趟...