演算法導論 第5章

2021-06-14 23:21:28 字數 1060 閱讀 5320

這一章,說來說去,兩件事情,1.概率分析。2.隨機演算法。

先把這個僱傭問題拿出來。

問題:有一批參與面試的人,你要乙個個面試(面試每個人都要花費c1),如果當前面試者比自己的助理能力強,則辭掉當前助理的,並把當前面試者提拔為助理(僱傭乙個人要花費c2),一直面試完所有人。

這裡考慮的是面試所花的money,假設總共有n人參加面試,有m人被僱傭過,則花費o(n*c1 + m*c2),因為參與面試的人員順序是不確定的,所以要花費的money也是不確定的(n*c1是確定的,而m是不確定的,所以m*c2也是不確定的)。

1.概率分析。它是幹什麼的?它是為了設計高效演算法而採用的一種數學分析方法,懂了吧

2.隨機演算法。它是什麼?雖然我們知道,這個過程是隨機的,但是,對方把名單一確定,那麼這個過程本來花費已經確定了,而此時隨機演算法,就是幹這個的,打亂順序,就算你是隨機的,我重新排序乙個更隨機的,用到的函式就是random()。

順便補充一下:5.2節的指示器隨機變數就是用的高中學的期望

,用期望來表示概率。

概率分析與隨機演算法之間的區別

1.概率分析,這個是你假定這個過程是隨機的各種可能都會有。是你以為!!!

2.隨機演算法,這個過程已經利用隨機函式,重新排列,強制為是一種隨機的排列,是幫你又隨機做了一次。是告訴你我確實是隨機!!!

比如按書上的,可以給每個人員隨機生成乙個優先順序,或者把每乙個面試人員與其後的面試人員中隨機一員交換,來產生乙個隨機的序列。

最後又講了4個問題。

1.生日悖論,結論是至少23個人在乙個房間,才有50%概率是同一天出生

2.球與盒子,就是你要放滿b個盒子,最少需要blnb次

3.序列,乙個序列最長的期望就是lgn

a。假如有n個人,我前面k個人面試,只給他們打分,都不要

b。剩下的人中,第乙個比前面面試的k個人中最高分還要高的,那麼就要了

c。一直找不到比前面高的人,那麼我就要最後乙個人

就是這麼3步策略

那麼k如何選擇?

經過複雜的推斷,結論就是k=n/e的時候,概率最大的能成功僱傭到滿意的人員。

工程導論第5章

5.1創造產品的一般流程 第一步 發現需求並定義問題 第二步 組織開發 創造 團隊 第三步 確定約束條件和設計要求 第四步 尋求解決方案 方案設計 方案論證階段的第五至第八步 第五步 方案論證 分析每個潛在方案 第六步 選出最佳方案 第七步 書面描述方案 第八步 把方案提交給管理層 初步設計階段的第...

演算法導論 第6章

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

演算法導論 第8章

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