資料結構學習 氣泡排序

2021-10-10 14:08:03 字數 684 閱讀 9472

演算法描述:氣泡排序的思想是在每趟交換的過程,比較相鄰的兩個元素,將值大的放在右邊,即將當前比較過程中的最大值移動到右邊,然後將比較過程的最大索引減1,繼續第二趟排序,將剩餘元素中的最大值移動到右邊,依次類推,直到發現有一趟比較過程中沒有發生交換,則說明陣列已經排好序了。

演算法時間複雜度:最好情況:當陣列已經是排好序的情況下,時間複雜度o(n);最壞情況:o(n^2);平均情況:o(n^2)

演算法空間複雜度:o(1)

演算法穩定性:由於氣泡排序可以保證陣列左邊的值必須大於右邊的值才能交換,因此原陣列的不同索引的相同值不會發生交換,所以演算法是穩定的。

演算法實現:氣泡排序bubblesort的實現如下:

/**

* 氣泡排序

* * @author limin

* @date 2020/11/15

*/public class bubblesort

boolean needswap = false;

for (int i = 0; i < arr.length - 1; i++)

}if (!needswap)

needswap = false;}}

public static void swap(int arr, int i, int j)

}

資料結構學習(七) 氣泡排序

int arr 第一趟排序,將最大的數排在最後 int temp 0 for int i 0 i arr.length 1 i system.out.println 第 i 1 趟排序後的陣列 system.out.println arrays.tostring arr 第一趟排序,將最大的數排在最...

python資料結構學習(氣泡排序)

簡單的試一試氣泡排序 氣泡排序為相鄰的兩個元素進行比較,如果順序錯誤則進行交換。data 9 29,2 4,13 567,23 532 123,34 for i in range len data 1 for j in range len data i 1 1防止發生範圍溢位情況 if data j...

資料結構學習筆記 排序

排序 就是要整理表中的元素,使之按關鍵字遞增 或遞減 有序排列。如果待排序的表中,存在有多個關鍵字相同的元素,經過排序後這些具有相同關鍵字的元素之間的相對 次序保持不變,則稱這種 排序演算法是穩定的。在排序過程中,若整個表都是放在記憶體中處理,排序時不涉及資料的內 外存交換,則稱之為 內排序 反之,...