




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、-PAGE . z.算法分析與設(shè)計期末復習題選擇題算法必須具備輸入、輸出和 D 等4個特性。A可行性和平安性 B確定性和易讀性C有窮性和平安性 D有窮性和確定性算法分析中,記號O表示 B ,記號表示 A A.漸進下界 B.漸進上界C.非緊上界 D.緊漸進界假設(shè)*算法在輸入規(guī)模為n時的計算時間為T(n)=3*2n。在*臺計算機上實現(xiàn)并完成概算法的時間為t秒。現(xiàn)有另一臺計算機,其運行速度為第一臺的64倍,則在這臺新機器上用同一算法在t秒能解輸入規(guī)模為多大的問題? B 解題方法:3*2n*64=3*2*An+8Bn+6Cn+7 Dn+5設(shè)問題規(guī)模為N時,*遞歸算法的時間復雜度記為T(N),T(1)=
2、1,T(N)=2T(N/2)+N/2,用O表示的時間復雜度為 C 。AO(logN) BO(N) CO(NlogN) DO(NlogN) 直接或間接調(diào)用自身的算法稱為 B 。A貪心算法 B遞歸算法 C迭代算法 D回溯法Fibonacci數(shù)列中,第4個和第11個數(shù)分別是 D 。A5,89 B3,89 C5,144 D3,144在有8個頂點的凸多邊形的三角剖分中,恰有 B 。A6條弦和7個三角形 B5條弦和6個三角形C6條弦和6個三角形 D5條弦和5個三角形一個問題可用動態(tài)規(guī)劃算法或貪心算法求解的關(guān)鍵特征是問題的 B 。A重疊子問題 B最優(yōu)子構(gòu)造性質(zhì)C貪心選擇性質(zhì) D定義最優(yōu)解以下哪個問題不用貪心
3、法求解 C 。A哈夫曼編碼問題 B單源最短路徑問題C最大團問題 D最小生成樹問題以下算法常以自底向上的方式求解最優(yōu)解的是 B 。A備忘錄法 B動態(tài)規(guī)劃法C貪心法 D回溯法以下算法中不能解決0/1背包問題的是 A 。A貪心法 B動態(tài)規(guī)劃 C回溯法 D分支限界法以下哪個問題可以用貪心算法求解 D 。ALCS問題 B批處理作業(yè)問題C0-1背包問題 D哈夫曼編碼問題用回溯法求解最優(yōu)裝載問題時,假設(shè)待選物品為m種,則該問題的解空間樹的結(jié)點個數(shù)為 。Am!B2m+1C2m+1-1 D2m二分搜索算法是利用A實現(xiàn)的算法。A分治策略 B動態(tài)規(guī)劃法C貪心法 D回溯法以下不是動態(tài)規(guī)劃算法根本步驟的是B。P44A找
4、出最優(yōu)解的性質(zhì) B構(gòu)造最優(yōu)解C算出最優(yōu)解(應(yīng)該是最優(yōu)值) D定義最優(yōu)解下面問題 B 不能使用貪心法解決。A單源最短路徑問題 BN皇后問題 C最小花費生成樹問題 D背包問題使用二分搜索算法在n個有序元素表中搜索一個特定元素,在最好情況和最壞情況下搜索的時間復雜性分別為 A 。P17AO(1),O(logn) BO(n),O(logn) CO(1),O(nlogn) DO(n),O(nlogn)優(yōu)先隊列式分支限界法選取擴展結(jié)點的原則是C。P162A先進先出 B后進先出C結(jié)點的優(yōu)先級 D隨機下面不是分支界限法搜索方式的是 D 。P161A廣度優(yōu)先 B最小消耗優(yōu)先C最大效益優(yōu)先 D深度優(yōu)先分支限界法解
5、最大團問題時,活結(jié)點表的組織形式是 B 。A最小堆 B最大堆 C棧 D數(shù)組以下關(guān)于計算機算法的描述不正確的選項是 C 。P1A算法是指解決問題的一種方法或一個過程B算法是假設(shè)干指令的有窮序列C. 算法必須要有輸入和輸出D算法是編程的思想以下關(guān)于凸多邊形最優(yōu)三角剖分問題描述不正確的選項是 A 。An+1個矩陣連乘的完全加括號和n個點的凸多邊形的三角剖分對應(yīng)B在有n個頂點的凸多邊形的三角剖分中,恰有n-3條弦C該問題可以用動態(tài)規(guī)劃法來求解D在有n個頂點的凸多邊形的三角剖分中,恰有n-2個三角形動態(tài)規(guī)劃法求解問題的根本步驟不包括 C 。P44A遞歸地定義最優(yōu)值B分析最優(yōu)解的性質(zhì),并刻畫其構(gòu)造特征C根
6、據(jù)計算最優(yōu)值時得到的信息,構(gòu)造最優(yōu)解 (可以省去的) D以自底向上的方式計算出最優(yōu)值分治法所能解決的問題應(yīng)具有的關(guān)鍵特征是 C 。P16A該問題的規(guī)??s小到一定的程度就可以容易地解決B該問題可以分解為假設(shè)干個規(guī)模較小的一樣問題C利用該問題分解出的子問題的解可以合并為該問題的解D該問題所分解出的各個子問題是相互獨立的以下關(guān)于回溯法的描述不正確的選項是 D 。P114A回溯法也稱為試探法 B回溯法有通用解題法之稱 C回溯法是一種能防止不必要搜索的窮舉式搜索法 D用回溯法對解空間作深度優(yōu)先搜索時只能用遞歸方法實現(xiàn) 常見的兩種分支限界法為 D 。P161A. 廣度優(yōu)先分支限界法與深度優(yōu)先分支限界法;B
7、. 隊列式FIFO分支限界法與堆棧式分支限界法;C. 排列樹法與子集樹法;D. 隊列式FIFO分支限界法與優(yōu)先隊列式分支限界法;填空題f(n)=3n2+10的漸近性態(tài)f(n)= O(n2),g(n)=10log3n的漸近性態(tài)g(n)= O( n )。一個好的算法應(yīng)具有正確性、 可讀性 、 強健性 和高效率和低存儲量需求等特性。算法的時間復雜性函數(shù)表示為 C=F(N,I,A) ,分析算法復雜性的目的在于比擬 求解同意問題的兩個不同算法的效率 的效率。 構(gòu)成遞歸式的兩個根本要素是 遞歸的邊界條件 和 遞歸的定義 。單源最短路徑問題可用 分支限界法 和 貪心算法 求解。用分治法實現(xiàn)快速排序算法時,最
8、好情況下的時間復雜性為 O(nlogn) ,最壞情況下的時間復雜性為 O(n2) ,該算法所需的時間與 運行時間 和 劃分 兩方面因素有關(guān)。P260-1背包問題的解空間樹為 完全二叉 樹;n后問題的解空間樹為 排列 樹;常見的分支限界法有隊列式FIFO分支限界法和優(yōu)先隊列式分支限界法?;厮莘ㄋ阉鹘饪臻g樹時常用的兩種剪枝函數(shù)為 約束函數(shù) 和 剪枝函數(shù) 。分支限界法解最大團問題時,活結(jié)點表的組織形式是最大堆;分支限界法解單源最短路徑問題時,活結(jié)點表的組織形式是 最小堆 。算法填空題遞歸求解Hanoi塔問題/階乘問題。例1 :階乘函數(shù)n! P12階乘的非遞歸方式定義:試寫出階乖的遞歸式及算法。遞歸式
9、為: 邊界條件遞歸方程遞歸算法:int factorial (int n) if (n=0) return 1; 遞歸出口 return n * factorial (n-1); 遞歸調(diào)用 例2:用遞歸技術(shù)求解Hanoi塔問題,Hanoi塔的遞歸算法。P15其中Hanoi (int n, int a, int c, int b)表示將塔座A上的n個盤子移至塔座C,以塔座B為輔助。Move(a,c)表示將塔座a上編號為n的圓盤移至塔座c上。void hanoi (int n, int a, int c, int b) if (n 0) hanoi(n-1, a, b, c); move(a,c)
10、; hanoi(n-1, b, c, a); 用分治法求解快速排序問題??焖倥判蛩惴≒25 、作業(yè)、課件第2章242頁-50頁templatevoid QuickSort (Type a, int p, int r)if (pr) int q=Partition(a,p,r); QuickSort (a,p,q-1); QuickSort (a,q+1,r); Partition函數(shù)的具體實現(xiàn)templateint Partition (Type a, int p, int r) int i = p, j = r + 1; Type *=ap; / 將 *的元素交換到右邊區(qū)域 while (t
11、rue) while (a+i * & i*); if (i = j) break; Swap(ai, aj); ap = aj; aj = *; return j;用貪心算法求解最優(yōu)裝載問題。最優(yōu)裝載問題 P95 課件第4章(2)第3-8頁templatevoid Loading(int *, Type w, Type c, int n) int *t = new int n+1; Sort(w, t, n); for (int i = 1; i = n; i+) *i = 0;for (int j = 1; j = n & wtj = c; j+) *ti = 1; c -= wtj;用回
12、溯法求解0-1背包/批處理作業(yè)調(diào)度 /最大團問題,要會畫解空間樹。例1:用回溯法求解0-1背包P133課件第5章(2)第24-38頁templateclass Knap private: Typep Bound(int i); /計算上界 void Backtrack(int i); Typew c; /背包容量 int n; /物品數(shù) Typew *w; /物品重量數(shù)組 Typep *p; /物品價值數(shù)組 Typew cw; /當前重量 Typep cp; /當前價值 Typep bestp; /當前最優(yōu)價值;void Knap:Backtrack(int i) if(in) bestp=c
13、p; return; if(cw+wibestp) /進入右子樹 Backtrack(i+1);Typep Knap:Bound(int i) Typew cleft=c-cw; /剩余的背包容量 Typep b=cp; /b為當前價值 /依次裝入單位重量價值高的整個物品 while(i=n&wi=cleft) cleft-=wi; b+=pi; i+; if(i=n) /裝入物品的一局部 b+=pi*cleft/wi; return b; /返回上界class Object /物品類 friend int Knapsack(int *,int *,int,int); public: int
14、operator =a.d); int ID; /物品編號 float d; /單位重量價值;Typep Knapsack( Typep p,Typew w,Typew c,int n) /為Typep Knapsack初始化 Typew W=0; /總重量 Typep P=0; /總價值 Object* Q=new Objectn; /創(chuàng)立物品數(shù)組,下標從0開場 for(int i=1;i=n;i+) /初始物品數(shù)組數(shù)據(jù) Qi-1.ID=i; Qi-1.d=1.0*pi/wi; P+=pi; W+=wi; if(W=c) /能裝入所有物品 return P; if(W=c) /能裝入所有物品
15、 return P; QuickSort(Q,0,n-1); /依物品單位重量價值非增排序 Knap K; K.p=new Typepn+1; K.w=new Typewn+1; for(int i=1;i n) for (int j = 1; j = n; j+) best*j = *j; bestf = f; else for (int j = i; j f1)f2i-1:f1)+m*j2; f+=f2i; if (f n) for(int j=1;j=n;j+) best*j=*j; bestn=; return;/判斷第i個頂點是否與已選頂點都有邊相連 int OK=1; for(in
16、t j=1;jbestn) /如有可能在右子樹中找到更大的團,則進入右子樹 *i=0; Backtrack(i+1); 計算時間:O(n2n)簡答題請簡述使用動態(tài)規(guī)劃算法解題的根本步驟。P44動態(tài)規(guī)劃的設(shè)計分為以下4個步驟:(1)找出最優(yōu)解的性質(zhì),并刻劃其構(gòu)造特征。(2)遞歸地定義最優(yōu)值。(3)以自底向上的方式計算出最優(yōu)值。(4)根據(jù)計算最優(yōu)值時得到的信息,構(gòu)造最優(yōu)解。簡述動態(tài)規(guī)劃方法與分治法的異同。P44一樣點:動態(tài)規(guī)劃算法與分治法類似,其根本思想也是將待求解問題分解成假設(shè)干個子問題,然后從這些子問題的解得到原問題的解。不同點:分治法的子問題互相獨立且與原問題一樣。與分治法不同的是,適合于動
17、態(tài)規(guī)劃求解的問題,經(jīng)分解得到的子問題往往不是互相獨立的。也就是各個子問題包含公共的子子問題。試比擬Prim算法與Kruskal算法的異同。105-P107一樣點:Prim(普里姆)算法和Kruskal(克魯斯卡爾)算法都可以看作是應(yīng)用貪心算法構(gòu)造最小生成樹的例子。利用了最小生成樹性質(zhì)。不同點:Prim(普里姆)算法:在這個過程中選取到的所有邊恰好構(gòu)成G的一棵最小生成樹T,T中包含G的n-1條邊,且不形成回路。 Kruskal(克魯斯卡爾)算法:是構(gòu)造最小生成樹的另一個常用算法。該算法不是通過擴大連通子集來進展貪心選擇。而是通過選擇具有最小權(quán)的邊的集合來進展貪心選擇。在選擇的同時可以進展連通操作
18、以便形成生成樹。請簡述分支限界法的搜索策略。P161 課件第6章(1)第6頁(1)分支限界法以廣度優(yōu)先或以最小消耗最大效益優(yōu)先的方式搜索問題的解空間樹。(2)每一個活結(jié)點只有一次時機成為擴展結(jié)點。(3)活結(jié)點一旦成為擴展結(jié)點,就一次性產(chǎn)生其所有兒子結(jié)點。(4)兒子結(jié)點中,導致不可行解或?qū)е路亲顑?yōu)解的兒子結(jié)點被舍棄,其余兒子結(jié)點被參加活結(jié)點表中。(5)從活結(jié)點表中取 下一結(jié)點 成為當前擴展結(jié)點,并重復上述結(jié)點擴展過程。這個過程一直持續(xù)到找到所需的解或活結(jié)點表為空時為止。 試比擬分支限界法與回溯法的異同。P161 課件第6章(1)第5頁不同點:(1)求解目標:回溯法的求解目標是找出解空間樹中滿足約
19、束條件的所有解,而分支限界法的求解目標則是找出滿足約束條件的一個解,或是在滿足約束條件的解中找出在*種意義下的最優(yōu)解。 (2)搜索方式:回溯法以深度優(yōu)先的方式搜索解空間樹,而分支限界法則以廣度優(yōu)先或以最小消耗優(yōu)先的方式搜索解空間樹。 算法應(yīng)用題用動態(tài)規(guī)劃求解凸多邊形最優(yōu)三角剖分問題。三角剖分的構(gòu)造及其相關(guān)問題P61(1)語法樹與完全加括號方式一個表達式的完全加括號方式相應(yīng)于一棵完全二叉樹,稱為表達式的語法樹。例如,完全加括號的矩陣連乘積(A1(A2A3)(A4(A5A6)所相應(yīng)的語法樹如圖 (a)所示。(2)語法樹與凸多邊形三角剖分凸多邊形P=v0,v1,vn-1的三角剖分也可以用語法樹表示。
20、如圖:根結(jié)點是邊v0v 6(可以任選)。其他邊則是語法樹的葉子節(jié)點。 v0v 6是三角形v0v3v 6的一條邊。2、三角剖分與矩陣連乘P61(1)一般來說,凸多邊形的三角剖分和有n-1個葉節(jié)點的語法樹存在一一對應(yīng)關(guān)系。(2)N個矩陣連乘的完全加括號和有n個葉節(jié)點的語法樹也存在一一對應(yīng)關(guān)系 。(3)所以,n個矩陣連乘的完全加括號和有n+1個節(jié)點的凸多邊形的三角剖分也存在一一對應(yīng)關(guān)系。(4)矩陣連乘積中A1 A2 An中的每個矩陣Ai對應(yīng)于凸(n+1)邊形中的一條邊vi-1vi。三角剖分中的一條弦vivj,ibestp.(3). 繼續(xù)向下搜索生成結(jié)點F,得到可行解(1,1,1,0,0),得到價值為
21、86,更新bestp=86(如圖第3步)第3步 第5步 第8步(4). 回溯:沿E回溯到左孩子D,生成相應(yīng)右孩子G,得到局部解( 1,1,0,1 ),此時b=93.1 bbestp,可以生成右子樹第4步在第5步的根底上沒有H和I的圖形(5). 繼續(xù)生成結(jié)點H,I,得到可行解( 1,1,0,1,0 ),價值為88,更新bestp=88(如圖第5步)(6). 回溯H生成J,得到局部解( 1,1,0,0 ),估計局部解b=9288第6步在第8步的根底上沒有K和L的圖形(7). 繼續(xù)生成結(jié)點K,得到可行解( 1,1,0,0, 1 ),價值為92,更新bestp=92第7步在第8步的根底上沒有L的圖形(
22、8). K是左孩子,生成其對應(yīng)的右孩子L,得到可行解( 1,1,0,0,0) (如圖第8步)(9). 回溯,沿結(jié)點L向上回溯到結(jié)點B,生成結(jié)點M,得到局部解 (1,0), 估計局部解b=9092,回溯第9步在第10步的根底上沒有N的圖形(10). 向上繼續(xù)回溯生成結(jié)點N,得到局部解(0),此時得到的b=74+10*(46/27) =91.0392,回溯,此時已回到根結(jié)點,完畢。最優(yōu)解( 1,1,0,0, 1 ),價值為92. (如圖第10步)練習n=8, M=110,W=( 1, 11,21,23,33,43,45,55 ) P=(11,21,31,33,43,53,55,65 ) 用回溯法求此0-1背包問題的最優(yōu)解。 最優(yōu)裝載問題 P119 課件第P37-P54頁假定n= 4,w= 8 , 6 , 2 , 3 ,c1 = c2 =12.試根據(jù)改良后的最優(yōu)裝載算法找出最優(yōu)裝載量及相應(yīng)的最優(yōu)裝載方案。要求:列出問題的解空間。構(gòu)造解空間樹。根據(jù)遞歸回溯算法求出最優(yōu)解和最優(yōu)值
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 南京市政道路路面施工方案
- 衛(wèi)生間橡皮金防水施工方案
- 退股協(xié)議方案
- 上承式鋼箱拱橋施工方案
- 蒸汽管道下穿鐵路施工方案
- 水庫堤壩加固工程施工方案
- 鐵路變配電所維修施工方案
- 構(gòu)建健全的外商投資服務(wù)體系的策略
- 發(fā)展中醫(yī)藥服務(wù)與傳統(tǒng)醫(yī)療模式的策略及實施路徑
- 低空經(jīng)濟的市場前景
- 從吶喊看魯迅筆下的女性角色
- 介紹錢三強的
- 農(nóng)業(yè)資源與環(huán)境經(jīng)濟學
- 生態(tài)與翻譯生態(tài)翻譯學理論解構(gòu)
- HQ城環(huán)湖預(yù)熱馬拉松活動方案
- 鐵路行車信號-手信號
- 組長述職晉升報告
- 小學學生課外勞動任務(wù)計劃清單(一至六年級)
- 《構(gòu)造地質(zhì)學》習題及參考答案
- 醫(yī)院配電系統(tǒng)智能化管理服務(wù)
- 小學主題班會【安全使用和維護家用電器】
評論
0/150
提交評論