程式設計珠璣 第13 14 15章

2021-07-25 12:46:49 字數 369 閱讀 8550

五種表示集合的重要資料結構

有序陣列、有序鍊錶、二叉樹、箱、位向量

庫的作用,空間的重要性,**調優方法

二叉樹是乙個堆

第乙個性質是順序:任何結點的值都小於或等於其子結點的值。

第二個性質是形狀:盡可能靠左分布。樹中不存在空閒的位置,如果它有n個結點,那麼所有結點到根結點的距離都不超過log2n

兩個關鍵函式 siftup siftdown

優先順序佇列

高效性,形狀性質保證了堆中所有結點和根結點之間相差的層數在log2n之內。

正確性,形狀和順序性質是另一種不變式。

抽象性

過程抽象

抽象資料型別

雜湊,平衡樹,字尾陣列

程式設計珠璣第14章

這裡把所有關於堆的操作寫出來。當做標程吧。include include define ms 1025 typedef struct heap heap heap h static void shift heap h,int i else break a i t static void increa...

程式設計珠璣第12章

正文 如何生成0 n 1內的m個隨機整數 1 方法一 比如要從5個數里選出2個數,第乙個數的概率是2 5,第二個數的概率是1 4,然後是0 3 那麼現在已經很清楚了。可以寫 如下 for int i 0 i n i if rand n i m 2 方法二 可以用乙個set,每生成乙個隨機,就去set...

程式設計珠璣第13章

正文 為了解決在12章中的隨機數問題,本章中的目的是對檢視是否在陣列中的情況進行處理。那麼這裡採用了以下幾種方法 1 採用c 的set 2 採用陣列 3 採用鍊錶,順序搜尋,插入時不用移動。結果是陣列的比鍊錶的要快 1 鍊錶需要讀入的記憶體數比陣列大 2 陣列訪問有較好的記憶體相聯性,而鍊錶則不能保...