a:構建乙個堆分為兩步:
1)建立一棵完全二叉樹 2)調整為乙個堆
b:演算法描述:
① 建立一棵完全二叉樹
② while(有雙親)
c:時間複雜度為 o(nlogn) ,空間複雜度為 o(1), 是不穩定排序!
/*** @auther yangchao
* @date 2019/7/31
*//*堆排序思想:【完全二叉樹的定義:前 h-1 層為滿二叉樹,最後一層連續缺失右節點(大根堆公升序排列,小根堆降序排列)】
首先堆是一棵完全二叉樹,根據陣列下標就可建成了一棵完全二叉樹
其次:while(有雙親)
*/public class heapsort ;
//初始化陣列的長度
private static integer length = array.length;
/*** 交換陣列元素
*/private static void swap(int i, int j)
/*** 調整大根堆
*/private static void adjust()
if (2 * parent + 2 < length && array[parent] < array[2 * parent + 1])
parent = parent - 1;}}
}/**
* 堆排序
每天進步一點點,加油,親愛的自己......
帶你了解堆排序
堆排序在八大排序演算法中屬於選擇排序,她利用的是堆這種資料結構來構建的排序演算法,堆分為大頂堆 小頂堆,根節點的數值要麼是最大的,要麼是最小的,堆排序最主要的兩個操作是建堆和調整堆兩個操作。public static void downadjust int array,int parentindex...
堆排序的順序儲存
堆排序順序儲存 公升序 完全二叉樹的概念 前h 1層為滿二叉樹,最後一層連續缺失右結點!首先堆是一棵全完二叉樹 a 構建乙個堆分為兩步 建立一棵完全二叉樹 調整為乙個堆 標註 大根堆為公升序,小根堆為降序 b 演算法描述 建立一棵完全二叉樹 while 有雙親 c 時間複雜度為 o nlogn 空間...
了解了解一下SQLSERVER裡的鬼影記錄
鬼影記錄也叫 幻影記錄 虛影記錄 英文名叫 ghost record 關於 truncate table有沒有使用鬼影記錄的 會出現鬼影記錄的兩種情況 1 聚集索引表 2 使用了快照隔離級別的堆表 為什麼在聚集索引的表裡會出現鬼影記錄,大家知道有聚集索引的表,裡面資料頁會用雙向鍊錶連線起來,如果馬上...