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

下載本文檔

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

文檔簡介

1、一。選擇題1、二分搜索算法是利用(A)實(shí)現(xiàn)的算法。A、分治策略B、動態(tài)規(guī)劃法C、貪心法D、回溯法2、 下列不是動態(tài)規(guī)劃算法基本步驟的是(A)oA、找出最優(yōu)解的性質(zhì)B、構(gòu)造最優(yōu)解 C、算出最優(yōu)解D、定義最優(yōu)解7、衡量一個算法好壞的標(biāo)準(zhǔn)是(C )。A運(yùn)行速度快B占用空間少C時間復(fù)雜度低D代碼短8、以下不可以使用分治法求解的是(D )。A棋盤覆蓋問題B選擇問題C歸并排序D 0/1背包問題14.哈弗曼編碼的貪心算法所需的計算時間為(B) oA 0(n2n)B O(nlogn )C、O (2n)D 0 (n)18. 下面是貪心算法的基本要素的是(C) oA、重疊子冋題 B構(gòu)造最優(yōu)解C、貪心選擇性質(zhì)D定義

2、最優(yōu)解24.(D)是貪心算法與動態(tài)規(guī)劃算法的共同點(diǎn)D最優(yōu)子結(jié)構(gòu)性質(zhì)B)設(shè)計實(shí)現(xiàn)。C、貪心算法D、A、重疊子冋題B、構(gòu)造最優(yōu)解C、貪心選擇性質(zhì)25. 矩陣連乘問題的算法可由(A、分支界限算法B、動態(tài)規(guī)劃算法回溯算法27、Strassen矩陣乘法是利用(A)實(shí)現(xiàn)的算法。A、分治策略 B、動態(tài)規(guī)劃法C、貪心法D、回溯法29、使用分治法求解不需要滿足的條件是(A )oA子問題必須是一樣的B子問題不能夠重復(fù)C子問題的解可以合并D原問題和子問題使用相同的方法解 30、下面問題(B )不能使用貪心法解決A 單源最短路徑問題B N 皇后問題C 最小花費(fèi)生成樹問題D 背包問題31、下列算法中不能解決 0/1 背

3、包問題的是( A ) A 貪心法 B 動態(tài)規(guī)劃 C 回溯法 D 分支限界法A)。C、貪心法D回溯法D)。C、算出最優(yōu)解D、子問題34實(shí)現(xiàn)合并排序利用的算法是(A、分治策略B、動態(tài)規(guī)劃法35下列是動態(tài)規(guī)劃算法基本要素的是(A、定義最優(yōu)解B、構(gòu)造最優(yōu)解重疊性質(zhì)36下列算法中通常以自底向下的方式求解最優(yōu)解的是 (B)A、分治法B、動態(tài)規(guī)劃法C、貪心法D回溯法38、合并排序算法是利用( A)實(shí)現(xiàn)的算法。A、分治策略B、動態(tài)規(guī)劃法C、貪心法D、回溯法B)C 、 O( 2n)D、 O( n)C)。C、分治策略D回溯法B)。C、構(gòu)造最優(yōu)解D、定義最B)。C、 O(2n)D、 O(n)40、背包問題的貪心算法

4、所需的計算時間為(A、 O(n2n)B 、 O(nlogn )41實(shí)現(xiàn)大整數(shù)的乘法是利用的算法(A、貪心法B、動態(tài)規(guī)劃法44貪心算法與動態(tài)規(guī)劃算法的主要區(qū)別是(A、最優(yōu)子結(jié)構(gòu)B、貪心選擇性質(zhì)優(yōu)解47. 背包問題的貪心算法所需的計算時間為(A、 O(n2n)B、 O( nlogn )52. 一個問題可用動態(tài)規(guī)劃算法或貪心算法求解的關(guān)鍵特征是問題的( B)。A、重疊子問題 B最優(yōu)子結(jié)構(gòu)性質(zhì)C貪心選擇性質(zhì)D定義最優(yōu)解53采用貪心算法的最優(yōu)裝載問題的主要計算量在于將集裝箱依其重量從小到大 排序,故算法的時間復(fù)雜度為 ( B )。A、 O(n2n)B、 O(nlogn )C、 O(2n)D、 O(n)

5、55. 實(shí)現(xiàn)最長公共子序列利用的算法是(A、分治策略B、動態(tài)規(guī)劃法C、貪心法D回溯法二、填空題1.算法的復(fù)雜性有時間復(fù)雜性和空間復(fù)雜性之分。2、 程序是用某種程序設(shè)計語言的具體實(shí)現(xiàn)。3、 算法的“確定性”指的是組成算法的每條指令 是清晰的,無歧義的。4、矩陣連乘問題的算法可由 動態(tài)規(guī)劃 設(shè)計實(shí)現(xiàn)。7、從分治法的一般設(shè)計模式可以看出,用它設(shè)計出的程序一般是 遞歸算法 。8、 問題的最優(yōu)子結(jié)構(gòu)性質(zhì) 是該問題可用動態(tài)規(guī)劃算法或貪心算法求解的 關(guān)鍵特征。11、計算一個算法時間復(fù)雜度通??梢杂嬎阊h(huán)次數(shù)、 基本操作的頻率或計算步。16、貪心選擇性質(zhì)是貪心算法可行的第一個基本要素,也是貪心算法與動態(tài) 規(guī)劃

6、算法的主要區(qū)別。17、 矩陣連乘問題的算法可由動態(tài)規(guī)劃設(shè)計實(shí)現(xiàn)。19. 貪心算法的基本要素是貪心選擇 質(zhì)和 最優(yōu)子結(jié)構(gòu)性質(zhì)。21. 動態(tài)規(guī)劃算法的基本思想是將待求解問題分解成若干子問題,先求解 子問題,然后從這些 子問題的解得到原問題的解。22. 算法是由若干條指令組成的有窮序列,且要滿足輸入、輸出、確定性和有限性 四條性質(zhì)。23. 大整數(shù)乘積算法是用分治法來設(shè)計的。26、貪心選擇性質(zhì)是貪心算法可行的第一個基本要素,也是貪心算法與動態(tài) 規(guī)劃算法的主要區(qū)別。27. 快速排序算法是基于分治策略的一種排序算法<性質(zhì)和28. 動態(tài)規(guī)劃算法的兩個基本要素是.最優(yōu)子結(jié)構(gòu)重疊子問題 性質(zhì)。34. 任何

7、可用計算機(jī)求解的問題所需的時間都與其規(guī)模 有關(guān)。35. 快速排序算法的性能取決于劃分的對稱性o三、算法填空1. 背包問題的貪心算法void Knapsack(int n,float M,float v,float w,float x)Sort( n,v,w);int i;for (i=1;i<=n ;i+) xi=0;float c=M;for (i=1;i<=n ;i+) if (wi>c) break;xi=1;c - =if (i4.貪心算法求活動安排問題templatevclass Type>void GreedySelector (int n, Type s,

8、 Type f, bool A)A1int j=1;for (int i=2;i<=n;i+) if (si>=fj) Ai=true;j=i;else Ai=false;5快速排序templatevclass Type>void Quicksort (Type a, int p, int r)if (P<r) int q=Partiti on( a,p,r);Quicksort (a,p,q-1); /對左半段排序Quicksort (a,q+1,r); /對右半段排序Partitio n()四、問答題1.分治法的基本思想時將一個規(guī)模為n的問題分解為k個規(guī)模較小的子

9、問題,這些子問題互相獨(dú)立且與原問題相同。 遞歸地解這些子問題,然后將各個 子問題的解合并得到原問題的解。2設(shè)計動態(tài)規(guī)劃算法的主要步驟為:(1)找出最優(yōu)解的性質(zhì),并刻劃其結(jié)構(gòu)特征。(2)遞歸地定義最優(yōu)值。(3)以自底向上的方式計算出最優(yōu)值。(4)根據(jù)計算最優(yōu)值時得到的信息,構(gòu) 造最優(yōu)解。3.分治法與動態(tài)規(guī)劃法的相同點(diǎn)是:將待求解的問題分解成若干個子問題, 先求解子問題,然后從這些子問題的解得到原問題的解。兩者的不同點(diǎn)是:適合于用動態(tài)規(guī)劃法求解的問題,經(jīng)分解得到的子問題往 往不是互相獨(dú)立的。而用分治法求解的問題,經(jīng)分解得到的子問題往往是互相獨(dú) 立的。6. 分治法所能解決的問題一般具有的幾個特征是:

10、(1)該問題的規(guī)??s小到一定的程度就可以容易地解決;(2)該問題可以分解為若干個規(guī)模較小的相同問題,即該問題具有最優(yōu)子 結(jié)構(gòu)性質(zhì) ;(3)利用該問題分解出的子問題的解可以合并為該問題的解;(4)原問題所分解出的各個子問題是相互獨(dú)立的,即子問題之間不包含 公共的子問題。五、算法題*1.給定已按升序排好序的n個元素a0:n-1,現(xiàn)要在這n個元素中找出一特定元 素x,返回其在數(shù)組中的位置,如果未找到返回-1。 寫出二分搜索的算法,并分析其時間復(fù)雜度。1. template<class Type>int BinarySearch(Type a, const Type& x, int

11、 n)/在a0:n中搜索x,找到x時返回其在數(shù)組中的位置,否則返回-1Int left=0; int right=n-1;While (left<=right)int middle=(left+right)/2;if (x=amiddle) return middle;if (x>amiddle) left=middle+1; else right=middle-1; Return -1; 時間復(fù)雜性為 O(logn)2. 利用分治算法寫出合并排序的算法,并分析其時間復(fù)雜度1. void MergeSort(Type a, int left, int right)if (left<right) / 至少有 2 個元素 int

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論