資料結構 排序

2021-10-01 15:27:18 字數 1053 閱讀 6413

對於排序的演算法,其實之前也看過,但是講真用的比較少在平常開發中。所以,每次回憶起,需要看其他書籍或文章感覺也是一件麻煩的事。還是自己記一下吧~

陣列排序的方法

氣泡排序

選擇排序

插入排序

歸併排序

快速排序

計數排序

桶排序基數排序

比較常見的還是氣泡排序、選擇排序、快速排序,所以這次只總結這三種排序方法的原理和使用。

在排序演算法中,最簡單就是氣泡排序,但是其效能也是最差的(時間複雜度o(n^2))。其實現原理是比較陣列中所有相鄰的兩項,如果前一項大於後一項,則交換兩者位置,只到比較完最後兩項為之,而它也由於一直向上移動元素,則被稱為冒泡。

function

bubblesort

(arr)}}

return arr

}

選擇排序顧名思義,就是選出陣列中的最小項拍到第一位,然後繼續找剩餘陣列項中的最小項,排到第二項,以此類推。

function

selectionsort

(arr)

} temp = arr[i]

arr[i]

= arr[minindex]

arr[minindex]

= temp

}return arr

}

相比較前兩種排序演算法,快速排序則顯得比較高階一點點。它的原理是先在陣列中選取乙個基準(benchmark),然後將小於基準的放到陣列的左邊,大於等於基準的放到陣列的右邊,不斷遞迴左右兩邊的陣列,並將它們和基準相連線構成乙個新的陣列。

function

quicksort

(arr)

else

}return

quicksort

(left)

.concat

(right,

quicksort

(right)

)}

資料結構 排序

小小總結了下 希望別不記得 排序型別 排序方法 平均時間 最壞時間 最好時間 穩定空間 插入直接插入 o n2 o n2 o n 穩定o 1 希爾排序 o n3 2 增量序列最後為1,只有公因子1 不穩o 1 選擇簡單選擇 o n2 o n2 o n 穩定o 1 堆排序o n lb n o n lb...

資料結構 排序

郝斌版 資料結構 學習筆記 冒泡 公升序,12比,大放後面,再23比,直至最大的在最後面 插入 2,3,4,依次插入值,保證插入值後的序列為有序的 選擇 後面所有的最小值依次排到最前 快速排序 歸併排序 22排,44排,88排.排序演算法標準 時間,空間,穩定性 排序和查詢的關係 排序是查詢的前提,...

資料結構 排序

1.希爾排序 shellsort 增量序列d n為要排序數的個數 void shellinsertsort int a,int n,int dk n個要排序的數,dk是增量 2 堆排序 已知h s m 除了h s 外均滿足堆的定義 調整h s 使其成為大頂堆.即將對第s個結點為根的子樹篩選,para...