交換排序之 氣泡排序

2021-09-22 16:27:43 字數 1008 閱讀 7432

優化方案

演算法複雜度、穩定性

氣泡排序只會操作相鄰的兩個元素。每次對相鄰的兩個元素做大小比較,看是否滿足大小關係。一次冒泡至少會讓乙個元素移動到最終位置(讓它有序)

4 5 6 1 2 3 要求按照公升序排序

第一次排序:4 5 1 2 3 6截止位置:array[ n - 1]

第二次排序:4 1 2 3 5 6截止位置:array[ n - 2]

第三次排序:1 2 3 4 5 6截止位置:array[ n - 3]

第四次排序:1 2 3 4 5 6

… 截止位置:array[0]]

走n次

public

static

void

bubblesort

(int

array)

else}}

}}

輔助列印工具類

public

class

sortprinthelper

}}

設定標誌位,若在某次迴圈結束後發現並沒有元素交換,認為資料集已經有序,停止迴圈。

public

static

void

bubblesort

(int

array)

else}if

(!flag)}}

}

最好情況:資料集本身就是乙個有序集合,o(n)

最壞情況:資料集完全逆序,o(n^2)

評價情況:o(n^2)

無須開闢新空間,僅僅是原有資料交換。氣泡排序是乙個原地排序演算法。

氣泡排序由於是相鄰元素發生大小關係變換才會交換次序,所以當兩個元素大小相等時,並不會改變其相對順序,它是穩定的。

交換排序之氣泡排序

大學學的演算法已經基本遺忘了,最近又重新撿起來好好鑽研一下,那麼就先從排序開始。先說交換排序中的氣泡排序,這個是比較基礎的乙個排序演算法。1 基本思想 在要排序的一組數中,對當前還未排好序的範圍內的全部數,自上而下對相鄰兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。即 每當兩相鄰的數比較...

交換排序之氣泡排序

氣泡排序演算法的基本思想是 假設待排序表長為n,從前往後 或從後往前 兩兩比較相鄰元素的值,若為逆序 即a i 1 a i 則交換它們,直到序列比較完。我們成它為一趟冒泡,結果將最大 最小 的元素交換到待排序列的最後乙個位置。下一趟冒泡時,前一趟確定的最大元素不再參與比較,待排序列減少乙個元素,每趟...

交換排序之氣泡排序

交換排序的主要思路就是在排序過程中,不斷比較待排序序列中相鄰的兩個資料,如果次序相反,則將其位置交換,從而達到排序的目的,氣泡排序和快速排序都屬於交換排序 下面我們介紹氣泡排序的基本原理 氣泡排序是一種比較簡單的排序演算法,基本思想就是對所有的相鄰的記錄的關鍵字進行比較,如果次序不對就將其交換,從而...