排序演算法 公升序

2021-09-03 02:21:24 字數 1451 閱讀 9223

連續的掃瞄序列,每次將當前序列的最大記錄通過兩兩交換移動到序列的尾部

連續的掃瞄序列,不斷地從待排序記錄中選擇最小的記錄放到已排序序列的後面

將目標記錄與前面已經排好序的序列從後往前逐個比較,尋找插入的位置

尋找目標記錄在已排序的序列中的位置時,可以採取折半查詢(二分查詢)的方法

先將整個待排序序列通過間隔h劃分為多個子串行,分別對每個子串行進行直接插入排序;h遞減(h>=1),重複以上劃分和排序

演算法

時間複雜度

空間複雜度

穩定性

最壞

平均

最好

氣泡排序

o(n^2)

o(n^2)

o(n)

o(1)

穩定

選擇排序

o(n^2)

o(n^2)

o(n^2)

o(1)

不穩定

插入排序

o(n^2)

o(n^2)

o(n)

o(1)

穩定

希爾排序

o(n^1.3)

o(1)

不穩定

快速排序

o(n^2)

o(nlogn)

o(nlogn)

o(logn)

不穩定

堆排序

o(nlogn)

o(nlogn)

o(nlogn)

o(1)

不穩定

堆排序(公升序排序)

1將陣列初始化為大根堆 2從i length 1 length是陣列長度 開始迴圈直到i 0將a 0 和陣列的最後乙個元素數值交換,使陣列最後乙個元素成為最大值,次大,第三大.依次類推 3在步驟2每次第乙個元素和最後乙個元素交換值的時候,會破壞堆的結構,所以還要加多調整堆結構這一步驟。調整堆 voi...

希爾排序(公升序)

一 思想 設待排序元素共有n個元素,首先取乙個整數gap二 title 插入排序中的希爾排序,依賴於初始序列 description 分別對間隔為gap的gap個子序列進行直接插入排序,不斷縮小gap,直至為 1 剛開始時,gap較大,每個子串行元素較少,排序速度較快 待到排序後期,gap變小,每個...

堆排序(公升序)

1 思想 堆即是一棵完全二叉樹。堆排序的核心是堆調整演算法。首先根據初始輸入資料,利用堆調整演算法shiftdown 形成最大堆 然後,將堆頂元素與堆尾元素交換,縮小堆的範圍並重新調整為最大堆,如此往復。堆排序是一種不穩定的排序演算法。2 堆調整過程 將初始堆調整為最大堆 最大堆定義 每個節點的值都...