算法分析復習題目及答案_第1頁
算法分析復習題目及答案_第2頁
算法分析復習題目及答案_第3頁
算法分析復習題目及答案_第4頁
算法分析復習題目及答案_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、、選擇題1、A二分搜索算法是利用(A)實現(xiàn)的算法。分治策略B、動態(tài)規(guī)劃法C、貪心法D、回溯法2、A3、卜列不是動態(tài)規(guī)劃算法基本步驟的是(找出最優(yōu)解的性質(zhì)最大效益優(yōu)先是(分支界限法B、構造最優(yōu)解A)的一搜索方式。B、動態(tài)規(guī)劃法)°C、算出最優(yōu)解D、定義最優(yōu)解4、A在下列算法中有時找不到問題解的是(蒙特卡羅算法B、拉斯維加斯算法5、A回溯法解旅行售貨員問題時的解空間樹是(C、貪心法)°C、舍伍德算法A)。D、回溯法D、數(shù)值概率算法子集樹以排列樹C、深度優(yōu)先生成樹廣度優(yōu)先生成樹6、A卜列算法中通常以自底向上的方式求解最優(yōu)解的是(備忘錄法R動態(tài)規(guī)劃法C、貪心法7、衡量一個算法好壞的

2、標準是(C)。B)。D、回溯法A運行速度快B占用空間少C時間復雜度低D代碼短8、以下不可以使用分治法求解的是(D)。A棋盤覆蓋問題B選擇問題C歸并排序D0/1背包問題9.實現(xiàn)循環(huán)賽日程表利用的算法是(A分治策略Ek動態(tài)規(guī)劃法D、回溯法10、下列隨機算法中運行時有時候成功有時候失敗的是(A數(shù)值概率算法B舍伍德算法C拉斯維加斯算法D蒙特卡羅算法11.下面不是分支界限法搜索方式的是(D)。A廣度優(yōu)先R最小耗費優(yōu)先C、最大效益優(yōu)先D、深度優(yōu)先A備忘錄法R動態(tài)規(guī)劃法C、貪心法D、回溯法13.備忘錄方法是那種算法的變形。(B)A分治法R動態(tài)規(guī)劃法C、貪心法D、回溯法14.哈弗曼編碼的貪心算法所需的計算時間

3、為(B)。AO(n2n)BO(nlogn)C、O(2n)D、O(n)12.下列算法中通常以深度優(yōu)先方式系統(tǒng)搜索問題解的是(DO15.分支限界法解最大團問題時,活結點表的組織形式是(BO日最大堆A最小堆16 .最長公共子序列算法利用的算法是(A分支界限法日動態(tài)規(guī)劃法17 .實現(xiàn)棋盤覆蓋算法利用的算法是(A分治法日動態(tài)規(guī)劃法貪心法18 .下面是貪心算法的基本要素的是(A重疊子問題B構造最優(yōu)解貪心選擇性質(zhì)定義最優(yōu)解19 .回溯法的效率不依賴于下列哪些因素A.滿足顯約束的值的個數(shù)C.計算限界函數(shù)的時間B.D.計算約束函數(shù)的時間確定解空間的時間20 .下面哪種函數(shù)是回溯法中為避免無效搜索采取的策略(A.

4、遞歸函數(shù)B.剪枝函數(shù)Co隨機數(shù)函數(shù)D.搜索函數(shù)21、下面關于NP問題說法正確的是(B)BP類問題包含在NP類問題中CNP完全問題是P類問題的子集DNP類問題包含在P類問題中22、蒙特卡羅算法是(B)的一種。C、貪心算法D、回溯算法A、分支界限算法B、概率算法23.下列哪一種算法不是隨機化算法(C)A.蒙特卡羅算法B.拉斯維加斯算法C.動態(tài)規(guī)劃算法24 .(D)是貪心算法與動態(tài)規(guī)劃算法的共同點。A、重疊子問題R構造最優(yōu)解G貪心選擇性質(zhì)25 .矩陣連乘問題的算法可由(B)設計實現(xiàn)。A、分支界限算法B、動態(tài)規(guī)劃算法D.舍伍德算法D、最優(yōu)子結構性質(zhì)C、貪心算法D、回溯算法26.分支限界法解旅行售貨員問

5、題時,活結點表的組織形式是(A最小堆以最大堆D、數(shù)組27、Strassen矩陣乘法是利用(A)實現(xiàn)的算法。A分治策略B、動態(tài)規(guī)劃法C、貪心法D、回溯法29、使用分治法求解不需要滿足的條件是(A子問題必須是一樣的B子問題不能夠重復C子問題的解可以合并D原問題和子問題使用相同的方法解30、下面問題(B)不能使用貪心法解決。A)。A單源最短路徑問題C最小花費生成樹問題31、下列算法中不能解決A貪心法B動態(tài)規(guī)劃CBN皇后問題D背包問題0/1背包問題的是(A)回溯法D分支限界法C)蒙特卡羅算法A、分治策略以動態(tài)規(guī)劃法貪心法D、回溯法35 .下列是動態(tài)規(guī)劃算法基本要素的是(D)。A、定義最優(yōu)解B構造最優(yōu)解

6、算出最優(yōu)解子問題重疊性質(zhì)36 .下列算法中通常以自底向下的方式求解最優(yōu)解的是A、分治法以動態(tài)規(guī)劃法B)。貪心法回溯法37 .采用廣度優(yōu)先策略搜索的算法是(A)。A、分支界限法日動態(tài)規(guī)劃法38、合并排序算法是利用(A)實現(xiàn)的算法。貪心法回溯法A、分治策略B、動態(tài)規(guī)劃法C、貪心法D、回溯法32、回溯法搜索狀態(tài)空間樹是按照(C)的順序。A中序遍歷B廣度優(yōu)先遍歷C深度優(yōu)先遍歷D層次優(yōu)先遍歷33、下列隨機算法中運行時有時候成功有時候失敗的是A數(shù)值概率算法B舍伍德算法C拉斯維加斯算法34.實現(xiàn)合并排序利用的算法是(39、在下列算法中得到的解未必正確的是(A、蒙特卡羅算法B、拉斯維加斯算法40、背包問題的貪

7、心算法所需的計算時間為(C、)舍伍德算法D、數(shù)值概率算法A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)41 .實現(xiàn)大整數(shù)的乘法是利用的算法(C)。D、回溯法A、貪心法日動態(tài)規(guī)劃法C分治策略42 .0-1背包問題的回溯算法所需的計算時間為(A)AO(n2n)日O(nlogn)CO(2n)43 .采用最大效益優(yōu)先搜索方式的算法是(A)。A分支界限法日動態(tài)規(guī)劃法C貪心法44 .貪心算法與動態(tài)規(guī)劃算法的主要區(qū)別是(B)。A最優(yōu)子結構日貪心選擇性質(zhì)C構造最優(yōu)解D、O(n)Dk回溯法D、定義最優(yōu)解45 .實現(xiàn)最大子段和利用的算法是(B)。D、回溯法A分治策略日動態(tài)規(guī)劃法C貪心法46 .優(yōu)先

8、隊列式分支限界法選取擴展結點的原則是(C)。A先進先出日后進先出C結點的優(yōu)先級D、隨機AO(n2n)48、廣度優(yōu)先是(A分支界限法47 .背包問題的貪心算法所需的計算時間為(B>O(nlogn)A)的一搜索方式。B、動態(tài)規(guī)劃法B)。CO(2n)D、O(n)C、貪心法D、回溯法49、舍伍德算法是(B)的一種。A、分支界限算法B、概率算法C、貪心算法50、在下列算法中有時找不到問題解的是(B)。A蒙特卡羅算法B、拉斯維加斯算法C、舍伍德算法D、回溯算法D、數(shù)值概率算法51下列哪一種算法是隨機化算法(D)A.貪心算法B.回溯法C.動態(tài)規(guī)劃算法D.舍伍德算法52 .一個問題可用動態(tài)規(guī)劃算法或貪心

9、算法求解的關鍵特征是問題的(B)。A重疊子問題日最優(yōu)子結構性質(zhì)C貪心選擇性質(zhì)D、定義最優(yōu)解53 .采用貪心算法的最優(yōu)裝載問題的主要計算量在于將集裝箱依其重量從小到大排序,故算法的時間復雜度為(B)。AO(n2n)BO(nlogn)CO(2n)D、O(n)54 .以深度優(yōu)先方式系統(tǒng)搜索問題解的算法稱為(D)。A、分支界限算法B、概率算法C、貪心算法D、回溯算法55 .實現(xiàn)最長公共子序列利用的算法是(B)。A分治策略Ek動態(tài)規(guī)劃法C貪心法D、回溯法二、填空題1.算法的復雜性有時間復雜性和空間復雜性之分。2、程序是算法用某種程序設計語言的具體實現(xiàn)。3、算法的“確定性”指的是組成算法的每條指令是清晰的

10、,無歧義的。4.矩陣連乘問題的算法可由動態(tài)規(guī)劃設計實現(xiàn)。5、拉斯維加斯算法找到的解一定是正確解。6、算法是指解決問題的一種方法或一個過程。7、從分治法的一般設計模式可以看出,用它設計出的程序一般是遞歸算法。8、問題的最優(yōu)子結構性質(zhì)是該問題可用動態(tài)規(guī)劃算法或貪心算法求解的關鍵特征。9、以深度優(yōu)先方式系統(tǒng)搜索問題解的算法稱為回溯法。10、數(shù)值概率算法常用于數(shù)值問題的求解。11、計算一個算法時間復雜度通常可以計算循環(huán)次數(shù)、基本操作的頻率或計算步。12、利用概率的性質(zhì)計算近似值的隨機算法是數(shù)值概率算法,運行時以一定的概率得到正確解的隨機算法是蒙特卡羅算法。14、解決0/1背包問題可以使用動態(tài)規(guī)劃、回溯

11、法和分支限界法,其中不需要排序的是動態(tài)規(guī)劃,需要排序的是回溯法,分支限界法。15、使用回溯法進行狀態(tài)空間樹裁剪分支時一般有兩個標準:約束條件和目標函數(shù)的界,N皇后問題和0/1背包問題正好是兩種不同的類型,其中同時使用約束條件和目標函數(shù)的界進行裁剪的是0/1背包問題,只使用約束條件進行裁剪的是N皇后問題。16、貪心選擇性質(zhì)是貪心算法可行的第一個基本要素,也是貪心算法與動態(tài)規(guī)劃算法的主要區(qū)別。17、矩陣連乘問題的算法可由動態(tài)規(guī)劃設計實現(xiàn)。18、拉斯維加斯算法找到的解一定是正確解。19.貪心算法的基本要素是貪心選擇質(zhì)和最優(yōu)子結構性質(zhì)。21 .動態(tài)規(guī)劃算法的基本思想是將待求解問題分解成若干子問題,先求

12、解子問題,然后從這些子問題的解得到原問題的解。22 .算法是由若干條指令組成的有窮序列,且要滿足輸入、輸出、確定性和有限性四條性質(zhì)。23、大整數(shù)乘積算法是用分治法來設計的。24、以廣度優(yōu)先或以最小耗費方式搜索問題解的算法稱為分支限界法。25、舍伍德算法總能求得問題的一個解。26、貪心選擇性質(zhì)是貪心算法可行的第一個基本要素,也是貪心算法與動態(tài)規(guī)劃算法的27 .快速排序算法是基于分治策略的一種排序算法。28 .動態(tài)規(guī)劃算法的兩個基本要素是最優(yōu)子結構性質(zhì)和重疊子問題性質(zhì)。30 .回溯法是一種既帶有系統(tǒng)性又帶有跳躍性的搜索算法。31 .分支限界法主要有隊列式(FIFO)分支限界法和優(yōu)先隊列式分支限界法

13、。32 .分支限界法是一種既帶有系統(tǒng)性又帶有跳躍性的搜索算法。33 .回溯法搜索解空間樹時,常用的兩種剪枝函數(shù)為約束函數(shù)和限界函數(shù)34 .任何可用計算機求解的問題所需的時間都與其規(guī)模有關。35 .快速排序算法的性能取決于劃分的對稱性。三、算法填空1 .背包問題的貪心算法voidKnapsack(intn,floatM,floatv,floatw,floatx)(Sort(n,v,w);inti;for(i=1;i<=n;i+)xi=0;floatc=M;for(i=1;i<=n;i+)if(wi>c)break;xi=1;c-=wi;if(i<=n)xi=c/wi;2

14、.最大子段和:動態(tài)規(guī)劃算法intMaxSum(intn,inta)(intsum=0,b=0;/sum存儲當前最大的bj,b存儲bjfor(intj=1;j<=n;j+)if(b>0)b+=aj;elseb=ai;/一旦某個區(qū)段和為負,則從下一個位置累和if(b>sum)sum=b;returnsum;3 .貪心算法求裝載問題template<classType>voidLoading(intx,Typew口,Typec,intn)int*t=newintn+1;for(inti=1;i<=n;i+)xi=0;for(inti=1;i<=n&&

15、amp;wti<=c;i+)xti=1;4 .貪心算法求活動安排問題template<classType>voidGreedySelector(intn,Types,Typef,boolA)A1=true;intj=1;for(inti=2;i<=n;i+)if(si>=fj)Ai=true;j=i;elseAi=false;5 .快速排序template<classType>voidQuickSort(Typea,intp,intr)if(p<r)intq=Partition(a,p,r);QuickSort(a,p,q-1);對左半段排序Qu

16、ickSort(a,q+1,r);/對右半段排序)6 .排列問題Template<classType>voidperm(Typelist,intk,intm)/產(chǎn)生listk:m的所有排列if(k=m)/只剩下一個元素for(inti=0;i<=m;i+)cout<<listi;cout<<endl;)else/還有多個元素待排列,遞歸產(chǎn)生排列for(inti=k;i<=m;i+)swap(listk,listi);perm(list,k+1;m);swap(listk,listi);)四、問答題1 .分治法的基本思想時將一個規(guī)模為n的問題分解為

17、k個規(guī)模較小的子問題,這些子問題互相獨立且與原問題相同。遞歸地解這些子問題,然后將各個子問題的解合并得到原問題的解。2設計動態(tài)規(guī)劃算法的主要步驟為:(1)找出最優(yōu)解的性質(zhì),并刻劃其結構特征。(2)遞歸地定義最優(yōu)值。(3)以自底向上的方式計算出最優(yōu)值。(4)根據(jù)計算最優(yōu)值時得到的信息,構造最優(yōu)解。3 .分治法與動態(tài)規(guī)劃法的相同點與不同點分別是什么?兩者的相同點:將待求解的問題分解成若干個子問題,先求解子問題,然后從這些子問題的解得到原問題的解。兩者的不同點是:適合于用動態(tài)規(guī)劃法求解的問題,經(jīng)分解得到的子問題往往不是互相獨立的。而用分治法求解的問題,經(jīng)分解得到的子問題往往是互相獨立的。4 .分支限

18、界法與回溯法的相同點與不同點分別是什么?相同點:都是一種在問題的解空間樹T中搜索問題解的算法。不同點:(1)求解目標不同;(2)搜索方式不同;(3)對擴展結點的擴展方式不同;(4)存儲空間的要求不同。5用回溯法搜索子集樹的算法為:voidbacktrack(intt)if(t>n)output(x);elsefor(inti=0;i<=1;i+)xt=i;if(constraint(t)&&bound(t)backtrack(t+1);)(1)該問題的規(guī)模縮小到一定的程度就可以容易地解決;(2)該問題可以分解為若干個規(guī)模較小的相同問題,即該問題具有最優(yōu)子結構性質(zhì);(

19、3)利用該問題分解出的子問題的解可以合并為該問題的解;(4)原問題所分解出的各個子問題是相互獨立的,即子問題之間不包含公共的子問題。7 .用分支限界法設計算法的步驟是:(1)針對所給問題,定義問題的解空間(對解進行編碼);分(2)確定易于搜索的解空間結構(按樹或圖組織解);(3)以廣度優(yōu)先或以最小耗費(最大收益)優(yōu)先的方式搜索解空間,并在搜索過程中用剪枝函數(shù)避免無效搜索。8 .常見的兩種分支限界法的算法框架(1)隊列式(FIFO)分支限界法:按照隊列先進先出(FIFO)原則選取下一個節(jié)點為擴展節(jié)點。(2)優(yōu)先隊列式分支限界法:按照優(yōu)先隊列中規(guī)定的優(yōu)先級選取優(yōu)先級最高的節(jié)點成為當前擴展節(jié)點。9

20、.回溯法中常見的兩類典型的解空間樹是子集樹和排列樹。當所給的問題是從n個元素的集合S中找出滿足某種性質(zhì)的子集時,相應的解空間樹稱為子集樹。這類子集樹通常有2n個葉結點,遍歷子集樹需O(2n)計算時間。當所給的問題是確定n個元素滿足某種性質(zhì)的排列時,相應的解空間樹稱為排列樹。這類排列樹通常有n!個葉結點。遍歷排列樹需要O(n!)計算時間。10 .分支限界法的搜索策略是:在擴展結點處,先生成其所有的兒子結點(分支),然后再從當前的活結點表中選擇下一個擴展結點。為了有效地選擇下一擴展結點,加速搜索的進程,在每一個活結點處,計算一個函數(shù)值(限界),并根據(jù)函數(shù)值,從當前活結點表中選擇一個最有利的結點作為

21、擴展結點,使搜索朝著解空間上有最優(yōu)解的分支推進,以便盡快地找出一個最優(yōu)解。五、算法題1.給定已按升序排好序的n個元素a0:n-1,現(xiàn)要在這n個元素中找出一特定元素x,返回其在數(shù)組中的位置,如果未找到返回-1。寫出二分搜索的算法,并分析其時間復雜度。1.template<classType>intBinarySearch(Typea,constType&x,intn)/在a0:n中搜索x,找到x時返回其在數(shù)組中的位置,否則返回-1Intleft=0;intright=n-1;While(left<=right)intmiddle=(left+right)if(x=amiddle)returnmiddle;if(x>amiddle)left=middle+1;elseright=middle-1;Return-1;時間復雜性為O(logn)2 .利用分治算法寫出合并排序的算法,并分析其時間復雜度1. v

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論