參考材料
希爾排序,又名縮小增量排序;
它是一種改進版本的直接插入排序法;
只不過直接插入排序是從左往右遍歷選擇帶插入的元素,再自右向左找到合適的插入位置;
而希爾排序是通過對原陣列進行分組,進而產生小規模的區域性有序的陣列,
接著再直接插入排序演算法實現高效排序的一種排序演算法.
本質是:
直接插入排序高效處理小規模的數列,因為元素越少往往越容易區域性有序.
1個元素有序,2個元素也有序(順序或者反序),3個元素則兩兩相鄰區域性有序……
詳細的原理說明,以及過程解析,請參考文章:
希爾排序的原理解析
//希爾排序,又名 縮小增量排序;
template
<
typename t>
void
shellsort
(t* arr,
const std::size_t n)
while
(inc)
arr[j + inc]
= temp;
} inc /
= cut;
}}
希爾排序演算法過程演示,請參考:
排序演算法過程演示
交流方式
氣泡排序(重溫經典演算法系列)
單個元素時肯定是有序的 故首元素單獨有序,從 1,n 為待排元素所在的區間 i 控制 n 1輪冒泡 即執行一系列兩兩元素對比的操作 第 i 輪能夠選出第 i 大 或者小 的元素值,n 1輪 選出 n 1 個較大 或者小 值之後,整個序列即可有序 for int i 1 i n i 外層i 控制 n ...
歸併排序(重溫經典演算法系列)
單個元素肯定有序 歸併排序採用分治思想,分而治之 將待排序陣列劃分為n等分,每份長度為1個元素,則 n份全部有序 再一生二,二生四,逐步兩兩元素有序的區間,歸一合併成1個有序區間 最終會歸併出整乙個陣列元素有序的結果.歸併排序有兩種實現方式 1 自頂向下遞迴呼叫實現 2 自底向上迭代執行實現.左右雙...
重溫經典演算法系列 動態規劃法
題記 曾經享受於演算法的或新穎或優美或簡潔,也曾經因領會熟知演算法在一些考試 競賽 如軟考和軟體開發比賽 和工作中屢試不爽,但是,近來一段時間,對於演算法這種靈魂類的東東似乎少有染指,實為遺憾,非常危險 演算法,是軟體開發中的瑰寶,是思維領域的奇葩,作為it人員,應該 必需的 應該作為一種素養,常習...