?? 簡答題.txt
字號:
1. 什么是算法?
算法是一系列解決問題的清晰指令,也就是對于符合一定規范的輸入,能夠在有限時間內獲得所要求的輸出
2. 分析非遞歸算法的效率的方案
一,決定用哪個參數表示輸入規模。二,找出算法的基本操作(作為一個規律,它總是位于算法的最內層循環中),三,檢查基本操作執行的次數是否只依賴輸入規模,如果它還依賴其他的特性,則最差效率,平均效率,最優效率(如有必要)需要分別研究。四,建立一個算法基本操作執行次數來求和表達式。五利用求和運算的標準公式和法則來建立一個操作次數的閉合公式,或者至少確定它的增長次數
3. 分析遞歸算法時間效率的通用方案
一,決定那個參數作為輸入規模的度量。二找出算法的基本操作。三,檢查一下對于相同規模的不同輸入,基本操作的執行次數是否可能不同,如果有這種可能則必須對最差效率平均效率最優效率做單獨研究。四,對于算法基本操作的執行次數建立一個遞推關系以及相應的初始條件。五,解這個遞推式,或者至少確定他的解的增長次數
4. 分治法的工作方案
一,將問題的實例劃分為幾個較小的實例最好擁有的同樣的規模,二,對這些較小的實例求解(一般使用遞歸方法,但在問題規模足夠小的時候有時間也會利用另一個算法),三,如果必要的話合并這些較小的解以得到原始問題的解
5. 減治法
減治技術利用了一個問題給定實例的解和同樣問題較小實例的解之間的某種關系,一旦建立了這種關系,我們既可以從頂至下(遞歸的),也可以從底向上的來運用該關系,減治法主要有三種變種(1)減去一個常量(2)減去一個常量因子(3)減法的規模是可變的
6. 變治法的3種主要類型
(1)變換為同樣問題的一個更簡單或者更方便的實例我們稱之為實例化簡(2)變換為同樣實例的不同表現我們稱之為改變表現(3)變換為另一個問題的實例這種問題的算法是已知的我們稱之為問題化簡
7.什么是AVL樹
一顆AVL樹是一顆二叉查找樹,其中的每個節點的平衡因子定義為該節點左子樹和右子樹的高度差,這個平衡因子要么是-1要么是0要么是1
7. 堆的概念
堆的定義為一顆二叉樹,樹的節點中包含鍵并且滿足下面兩個條件(1)樹的形狀要求,這顆二叉樹是基本完備的(或者簡稱為完全二叉樹)這意味著樹的每一層都是滿的除了最后一層右邊的元素有可能缺位(2)父母優勢要求,每一個節點的鍵都要大于或等于它子女的鍵
8. 從堆中刪除最大的鍵
第一步,根的鍵和最后的一個鍵做交換,第二步,堆的規模減1,第三步,嚴格按照自底向上的算法,把K沿著樹向下篩選來對這顆較小的樹進行堆化,也就是說驗證K是否滿足父母優勢,如果它滿足,就完成了。如果不滿足,K和他較大的子女做交換,然后重復這個操作,知道K在新位置中滿足父母優勢
9. 堆排序的做法
第一步,為一個給定的數組構造一個堆(自底向上)第二步,(刪除最大鍵)對剩下的堆應用n-1次根刪除操作
10. 貪婪技術所做的每一步滿足的條件
(1)可行性:即他必須滿足問題的約束(2)局部最優:它是當前步驟中所有可行選擇中最佳的局部選擇(3)不可取消:即選擇一旦做出,在算法的后面步驟中就無法改變了
11.動態規劃的思想
如果問題是由交疊的子問題所構成的,我們就可以用動態規劃技術來解決它,一般老說,這樣的子問題出現在對給定問題求解的遞推關系中,這個遞推關系中包含了相同的類型的更小問題的解,動態規劃是對交疊的子問題中每一個較小的子問題只求一次并把結果記錄在表中,這樣就可以得出原始問題的解
算法的特型:
一般性,簡單性,正確性,效率性。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -