資料結構學習二 四種排序演算法

2021-10-24 12:27:32 字數 818 閱讀 6917

插入排序

氣泡排序

快速排序

將一組數列分為兩組:有序組和無序組,最初整個數列都是無序組。從無序組中找到最大的或最小的那個值追加到有序組中,不斷重複,直到無序組中所有數值都追加到有序組中,排序就結束了。

也就是從無序組中選擇合適的數值放到有序組中。

o(n2)

將一組數列分為兩組:有序組和無序組,最初整個數列都是無序組。取無序組中的第乙個數值,與有序組中的值進行比較,插入到合適的位置,不斷重複,直到無序組中所有數值都插入到有序組中,排序就結束了。

也就是從無序組中取乙個數值插入到有序組的合適位置中。

o(n2)

將乙個數列中相鄰的兩個數值兩兩比較,如果後乙個數值大於前乙個數值,就交換位置,一次遍歷後,數列中的最大值就被放到了數列的最後面。重複這個遍歷過程,不斷的將大值沉澱到數列後面,小值浮現到數列前面,就得到了有序數列

o(n2)

快速排序其實是二分法排序,是分治思想。就是現在數列中選乙個數值作為基準值,然後把數列中大於這個數值的都放到這個數值的右邊,小於這個數值的都放到這個數值的左邊,這樣就得到了乙個相對有序的數列,然後對左右兩邊的無序的數列繼續重複這個過程,當無序的數列長度為1時,整個數列就有序了。

o(nlog2n)

資料結構學習筆記 排序

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

資料結構學習 氣泡排序

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

資料結構學習 希爾排序

演算法描述 希爾排序是插入排序的一種改進,主要是為了解決當較小的資料大都出現在陣列後面時導致的移動次數明顯增多的問題,思想是使用乙個不斷縮小的增量gap將陣列元素分組,在每個分組內部先進行插入排序,當gap減少到1時整個陣列元素分在一組,最後進行一次插入排序,整個排序過程結束。演算法時間複雜度 最好...