希爾排序(公升序)

2021-08-19 05:10:15 字數 683 閱讀 9283

一、思想

設待排序元素共有n個元素,首先取乙個整數gap二、**

/**        

* title: 插入排序中的希爾排序,依賴於初始序列    

* description: 分別對間隔為gap的gap個子序列進行直接插入排序,不斷縮小gap,直至為 1 

* *              剛開始時,gap較大,每個子串行元素較少,排序速度較快;

*              待到排序後期,gap變小,每個子串行元素較多,但大部分元素基本有序,所以排序速度仍較快。                

* *              時間複雜度:o(n) ~ o(n^2)

*              空間複雜度:o(1)

*              穩    定   性:不穩定

*              內部排序(在排序過程中資料元素完全在記憶體)

* @author rico       

* @created 2023年5月20日 上午10:40:00    

*/      

public class shellsort else}}

}}}public static void swap(int target, int i, int j)

}三、時間複雜度

o(n)~o(n^2)

堆排序(公升序排序)

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

堆排序(公升序)

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

排序演算法 公升序

連續的掃瞄序列,每次將當前序列的最大記錄通過兩兩交換移動到序列的尾部 連續的掃瞄序列,不斷地從待排序記錄中選擇最小的記錄放到已排序序列的後面 將目標記錄與前面已經排好序的序列從後往前逐個比較,尋找插入的位置 尋找目標記錄在已排序的序列中的位置時,可以採取折半查詢 二分查詢 的方法 先將整個待排序序列...