排序演算法之氣泡排序(一)

2021-09-25 19:37:36 字數 739 閱讀 2602

氣泡排序是最常使用的一種排序演算法,演算法思想是從頭到尾遍歷陣列,將相鄰的兩個值進行比較,小的放在前面,大的放在後面。

這樣第一趟排序之後,最後乙個位置所放的元素就是最大的值,第二趟排序之後,倒數第二個元素也排好了。經過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 比較相鄰的元素,如果第乙個比第二個大,就交換他們兩...

排序演算法之氣泡排序

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

排序演算法之氣泡排序

對於大多數學計算機的人來說,氣泡排序應該都是接觸的第一種排序方式,氣泡排序的排序思想是比較簡單的,它的演算法的是 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了...