第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.這一節其實沒什麼內容,就是一點基本的概念,以及了解比較演算法可以通過轉換為決策樹...