排序演算法1 氣泡排序

2021-10-24 23:07:30 字數 1086 閱讀 2531

/**

* 氣泡排序

*/public

class

bubblesort

;int

arr =

;//交換變數

int temp;

//判斷上一次是否進行了排序,若上次沒有進行排序,證明排序已經提前完成,可提前跳出迴圈,結束排序

boolean flag =

false

;for

(int i =

0; i < arr.length -

1; i++)}

if(!flag)

else

system.out.

println

("第"

+(i +1)

+"次排序");

system.out.

println

(arrays.

tostring

(arr));

}}}

氣泡排序演算法在每輪排序中會使乙個元素排到一端,也就是最終需要 n-1 輪這樣的排序(n 為待排序的數列的長度),而在每輪排序中都需要對相鄰的兩個元素進行比較,在最壞的情況下,每次比較之後都需要交換位置,所以這裡的最壞時間複雜度是 o(n^2)。其實氣泡排序在最好的情況下,最好時間複雜度可以達到 o(n),這當然是在待排序的數列有序的情況下。在待排序的數列本身就是我們想要的排序結果時,時間複雜度的確是 o(n),因為只需要一輪排序並且不用交換。但是實際上這種情況很少,所以氣泡排序的平均時間複雜度是 o(n^2)

對於空間複雜度來說,氣泡排序用到的額外的儲存空間只有乙個,那就是用於交換位置的臨時變數,其他所有操作都是在原有待排序列上處理的,所以空間複雜度為 o(1)

氣泡排序是穩定的,因為在比較過程中,只有後乙個元素比前面的元素大時才會對它們交換位置並向上冒出,對於同樣大小的元素,是不需要交換位置的,所以對於同樣大小的元素來說,相對位置是不會改變的。

排序發生在記憶體中,所以排序方式是內排序

排序演算法 1 氣泡排序

氣泡排序是非常容易理解和實現,以從小到大排序舉例 設陣列長度為n。1 比較相鄰的前後二個資料,如果前面資料大於後面的資料,就將二個資料交換。2 這樣對陣列的第0個資料到n 1個資料進行一次遍歷後,最大的乙個資料就 沉 到陣列第n 1個位置。3 n n 1,如果n不為0就重複前面二步,否則排序完成。冒...

排序演算法1 氣泡排序

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

氣泡排序演算法 1

氣泡排序是一種比較簡單的排序演算法,其本質是相鄰的兩個元素進行大小比較,最終使得所有的元素形成從小到大或者從大到小的排列 演算法原理 比較相鄰的元素,不相等,就進行交換 對所有的相鄰元素進行第1步的操作,第一輪比較下來,最大 小 的元素排在了最尾部 最大 小 第二大 小 第三大 小 的元素依次會排到...