演算法導論 第9章

2021-06-15 00:28:35 字數 788 閱讀 8496

第i個順序統計量

:在乙個由n個元素組成的集合中,第i個順序統計量(order statistic)是該集合中第i小的元素。

最小值是第1個順序統計量(i=1)

最大值是第n個順序統計量(i=n)

中位數:乙個中位數(median)是它所在集合的「中點元素」,當n為奇數時,i=(n+1)/2,當n為偶數是,中位數總是出現在

找最大值/最小值問題,通過比較n-1次可以得出結果。這個可以參照書p108頁,不想多說。

如果是一般的選擇問題,即找出一段序列第i小的數,看起來要比找最大值或最小值要麻煩,其實兩種問題的漸進時間都是

randomized-select(a, p, r, i)

if p = r

then return a[p]

q ← randomized-partition(a, p, r)

k ← q - p + 1

if i = k ▹ the pivot value is the answer

then return a[q]

elseif i < k

then return randomized-select(a, p, q - 1, i)

else return randomized-select(a, q + 1, r, i - k)

這個又是乙個典型的遞迴,用到了前面的隨機演算法,關於遞迴,不想多說,前面實在說了很多,兩種理解方式,表面的理解,深入的遞迴理解。只要你能明白,哪種方式都可以。

最後一句重要結論:

演算法導論 第5章

這一章,說來說去,兩件事情,1.概率分析。2.隨機演算法。先把這個僱傭問題拿出來。問題 有一批參與面試的人,你要乙個個面試 面試每個人都要花費c1 如果當前面試者比自己的助理能力強,則辭掉當前助理的,並把當前面試者提拔為助理 僱傭乙個人要花費c2 一直面試完所有人。這裡考慮的是面試所花的money,...

演算法導論 第6章

這一章,前言講了為什麼要排序?接著介紹本章主題,堆排序。那麼什麼又是堆呢?一種資料結構,當然有很多性質,這個我在前面資料結構說過了,然後有兩種。1.大根堆 它是用來堆排序的。2.小根堆 它是用來做優先順序佇列的。清楚了這兩種用途,那麼我們來看 關於堆排序 public class heap sort...

演算法導論 第8章

這一章2個事情 1.決策樹。2.三種線性排序。關於決策樹 1.決策樹其實是對前面的堆排序,快排等是最優的比較演算法的證明。2.重要結論,定理8.1證明了任意乙個比較演算法在最壞情況下都需要做 n lg n 次的比較。3.這一節其實沒什麼內容,就是一點基本的概念,以及了解比較演算法可以通過轉換為決策樹...