氣泡排序是最常使用的一種排序演算法,演算法思想是從頭到尾遍歷陣列,將相鄰的兩個值進行比較,小的放在前面,大的放在後面。
這樣第一趟排序之後,最後乙個位置所放的元素就是最大的值,第二趟排序之後,倒數第二個元素也排好了。經過n次排序之後,所有的值就排序完成了。
比如無序陣列 3,1,4,2,5
第一躺 1,3,2,4,5
第二趟 1,2,3,4,5
這樣排序就完成了,**實現也很簡單,使用雙重for循壞即可
時間複雜度 o(n^2) 空間複雜度 o(1) 具有穩定性
public static void bubblesort(t arr) }}
}
演算法優化:上面的例子,其實只進行了兩趟排序,但是for迴圈持續了5次,所以可以在中間加入乙個變數flag來判斷是否發生交換,如果一趟下來沒有發生交換,則說明該陣列已經是有序的,直接跳出迴圈。
此時的最優時間複雜度 o(n)
public static void bubblesort(t arr)
}if (!flag)
}}
交換swap**
private static void swap(t arr,int i, int j)
swift演算法之排序 (一)氣泡排序
1 概述 氣泡排序是一種簡單的演算法,是指重複遍歷需要排序的元素列,一次比較兩個相鄰的元素,如果他們的順序 如從大到小 首字母a z等 錯誤就把他們交換過來,遍歷的目的是重複的進行指導沒有相鄰元素需要交換 即該元素列已經排序完成。2 演算法原理 1 比較相鄰的元素,如果第乙個比第二個大,就交換他們兩...
排序演算法之氣泡排序
參考 氣泡排序演算法的運作如下 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。若...
排序演算法之氣泡排序
對於大多數學計算機的人來說,氣泡排序應該都是接觸的第一種排序方式,氣泡排序的排序思想是比較簡單的,它的演算法的是 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了...