連續的掃瞄序列,每次將當前序列的最大記錄通過兩兩交換移動到序列的尾部
連續的掃瞄序列,不斷地從待排序記錄中選擇最小的記錄放到已排序序列的後面
將目標記錄與前面已經排好序的序列從後往前逐個比較,尋找插入的位置
尋找目標記錄在已排序的序列中的位置時,可以採取折半查詢(二分查詢)的方法
先將整個待排序序列通過間隔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 堆調整過程 將初始堆調整為最大堆 最大堆定義 每個節點的值都...