版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、一、選擇題1、二分搜索算法是利用( A )實現(xiàn)的算法。A、分治策略 B、動態(tài)規(guī)劃法 C、貪心法 D、回溯法2、下列不是動態(tài)規(guī)劃算法基本步驟的是( A )。A、找出最優(yōu)解的性質(zhì) B、構造最優(yōu)解 C、算出最優(yōu)解 D、定義最優(yōu)解3、最大效益優(yōu)先是( A )的一搜索方式。A、分支界限法 B、動態(tài)規(guī)劃法 C、貪心法 D、
2、回溯法4、在下列算法中有時找不到問題解的是( B )。A、蒙特卡羅算法 B、拉斯維加斯算法 C、舍伍德算法 D、數(shù)值概率算法5. 回溯法解旅行售貨員問題時的解空間樹是( A )。A、子集樹B、排列樹C、深度優(yōu)先生成樹D、廣度優(yōu)先生成樹6下列算法中通常以自底向上的方式求解最優(yōu)解的是( B )。A、備忘錄法B、動態(tài)規(guī)劃法C、貪心法D、回溯法7、衡量一個算法好壞的標準是( C )。A 運行速度快 B 占用空間少 C 時間復雜度低 D 代碼短8、以下不可以使用分治法求解的是( D )。A 棋盤覆蓋問題 B 選擇問題 C
3、 歸并排序 D 0/1背包問題9. 實現(xiàn)循環(huán)賽日程表利用的算法是( A )。A、分治策略B、動態(tài)規(guī)劃法C、貪心法D、回溯法10、下列隨機算法中運行時有時候成功有時候失敗的是( C )A 數(shù)值概率算法 B 舍伍德算法 C 拉斯維加斯算法 D 蒙特卡羅算法11下面不是分支界限法搜索方式的是( D )。A、廣度優(yōu)先B、最小耗費優(yōu)先C、最大效益優(yōu)先D、深度優(yōu)先12下列算法中通常以深度優(yōu)先方式系統(tǒng)搜索問題解的是( D )。A、備忘錄法B、動態(tài)規(guī)劃法C、貪心法D、回溯法13.備忘錄方法是那種算法的變形。( B )A、分治法B、動態(tài)規(guī)劃法C、貪心法D、回溯法14哈弗曼編碼的貪心算法所需的計算時間為( B )
4、。A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)15分支限界法解最大團問題時,活結(jié)點表的組織形式是( B )。A、最小堆B、最大堆 C、棧D、數(shù)組16最長公共子序列算法利用的算法是( B )。A、分支界限法B、動態(tài)規(guī)劃法C、貪心法D、回溯法17實現(xiàn)棋盤覆蓋算法利用的算法是( A )。A、分治法B、動態(tài)規(guī)劃法C、貪心法D、回溯法18.下面是貪心算法的基本要素的是( C )。A、重疊子問題B、構造最優(yōu)解C、貪心選擇性質(zhì)D、定義最優(yōu)解19.回溯法的效率不依賴于下列哪些因素( D )A.滿足顯約束的值的個數(shù) B. 計算約束函數(shù)的時間 C. 計算限界函數(shù)的時間 D. 確定解空間的時間20
5、.下面哪種函數(shù)是回溯法中為避免無效搜索采取的策略( B )A遞歸函數(shù)B.剪枝函數(shù) C。隨機數(shù)函數(shù)D.搜索函數(shù)21、下面關于NP問題說法正確的是( B )A NP問題都是不可能解決的問題B P類問題包含在NP類問題中C NP完全問題是P類問題的子集D NP類問題包含在P類問題中22、蒙特卡羅算法是( B )的一種。A、分支界限算法 B、概率算法 C、貪心算法 D、回溯算法23.下列哪一種算法不是隨機化算法( C )A. 蒙特卡羅算法B. 拉斯維加斯算法C.動態(tài)規(guī)劃算
6、法D.舍伍德算法24. ( D )是貪心算法與動態(tài)規(guī)劃算法的共同點。A、重疊子問題B、構造最優(yōu)解C、貪心選擇性質(zhì)D、最優(yōu)子結(jié)構性質(zhì)25. 矩陣連乘問題的算法可由( B )設計實現(xiàn)。A、分支界限算法 B、動態(tài)規(guī)劃算法 C、貪心算法 D、回溯算法26. 分支限界法解旅行售貨員問題時,活結(jié)點表的組織形式是( A )。A、最小堆B、最大堆 C、棧D、數(shù)組27、Strassen矩陣乘法是利用( A )實現(xiàn)的算法。A、分治策略 B、動態(tài)規(guī)劃法
7、; C、貪心法 D、回溯法29、使用分治法求解不需要滿足的條件是( A )。A 子問題必須是一樣的B 子問題不能夠重復C 子問題的解可以合并D 原問題和子問題使用相同的方法解30、下面問題( B )不能使用貪心法解決。A 單源最短路徑問題 B N皇后問題 C 最小花費生成樹問題 D 背包問題31、下列算法中不能解決0/1背包問題的是( A )A 貪心法 B 動態(tài)規(guī)劃 C 回溯法 D 分支限界法32、回溯法搜索狀態(tài)空間樹是按照( C )的順序。A 中序遍歷 B 廣度優(yōu)先遍歷 C 深度優(yōu)先遍歷 D 層次優(yōu)先遍歷33、下列隨機算法中運行時有時候成功有時
8、候失敗的是( C )A 數(shù)值概率算法 B 舍伍德算法 C 拉斯維加斯算法 D 蒙特卡羅算法34實現(xiàn)合并排序利用的算法是( A )。A、分治策略B、動態(tài)規(guī)劃法C、貪心法D、回溯法35下列是動態(tài)規(guī)劃算法基本要素的是( D )。A、定義最優(yōu)解B、構造最優(yōu)解C、算出最優(yōu)解D、子問題重疊性質(zhì)36下列算法中通常以自底向下的方式求解最優(yōu)解的是( B )。A、分治法B、動態(tài)規(guī)劃法C、貪心法D、回溯法37采用廣度優(yōu)先策略搜索的算法是( A )。A、分支界限法B、動態(tài)規(guī)劃法C、貪心法D、回溯法38、合并排序算法是利用( A )實現(xiàn)的算法。A、分治策略 B、動態(tài)規(guī)劃法
9、 C、貪心法 D、回溯法39、在下列算法中得到的解未必正確的是( B )。A、蒙特卡羅算法 B、拉斯維加斯算法 C、舍伍德算法 D、數(shù)值概率算法40、背包問題的貪心算法所需的計算時間為( B )A、O(n2n) B、O(nlogn) C、O(2n) D、O(n)41實現(xiàn)大整數(shù)的乘法是利用的算法( C )。A、貪心法B、動態(tài)規(guī)劃法C、分
10、治策略D、回溯法420-1背包問題的回溯算法所需的計算時間為( A )A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)43采用最大效益優(yōu)先搜索方式的算法是( A )。A、分支界限法B、動態(tài)規(guī)劃法C、貪心法D、回溯法44貪心算法與動態(tài)規(guī)劃算法的主要區(qū)別是( B )。A、最優(yōu)子結(jié)構B、貪心選擇性質(zhì)C、構造最優(yōu)解D、定義最優(yōu)解45. 實現(xiàn)最大子段和利用的算法是( B )。A、分治策略B、動態(tài)規(guī)劃法C、貪心法D、回溯法46.優(yōu)先隊列式分支限界法選取擴展結(jié)點的原則是( C )。A、先進先出B、后進先出C、結(jié)點的優(yōu)先級D、隨機47.背包問題的貪心算法所需的計算時間為( B )。A、O(n2n
11、)B、O(nlogn)C、O(2n)D、O(n)48、廣度優(yōu)先是( A )的一搜索方式。A、分支界限法 B、動態(tài)規(guī)劃法 C、貪心法 D、回溯法49、舍伍德算法是( B )的一種。A、分支界限算法 B、概率算法 C、貪心算法 D、回溯算法50、在下列算法中有時找不到問題解的是( B )。A、蒙特卡羅算法
12、; B、拉斯維加斯算法 C、舍伍德算法 D、數(shù)值概率算法51下列哪一種算法是隨機化算法( D )A. 貪心算法B. 回溯法C.動態(tài)規(guī)劃算法D.舍伍德算法52. 一個問題可用動態(tài)規(guī)劃算法或貪心算法求解的關鍵特征是問題的( B )。A、重疊子問題B、最優(yōu)子結(jié)構性質(zhì)C、貪心選擇性質(zhì)D、定義最優(yōu)解53采用貪心算法的最優(yōu)裝載問題的主要計算量在于將集裝箱依其重量從小到大排序,故算法的時間復雜度為 ( B ) 。A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)54. 以深度優(yōu)先方式系統(tǒng)搜索問題解的算法稱為 ( D ) 。A、分支界限算法
13、; B、概率算法 C、貪心算法 D、回溯算法55. 實現(xiàn)最長公共子序列利用的算法是( B )。A、分治策略B、動態(tài)規(guī)劃法C、貪心法D、回溯法二、 填空題 1.算法的復雜性有 時間 復雜性和 空間 復雜性之分。2、程序是 算法 用某種程序設計語言的具體實現(xiàn)。3、算法的“確定性”指的是組成算法的每條 指令 是清晰的,無歧義的。4.矩陣連乘問題的算法可由 動態(tài)規(guī)劃 設計實現(xiàn)。5、拉斯維加斯算法找到的解一定是 正確解 。6、算法是指解決問題的 一種方法 或 一個過程 。7、從分治法的
14、一般設計模式可以看出,用它設計出的程序一般是 遞歸算法 。8、問題的 最優(yōu)子結(jié)構性質(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ī)劃、回溯法和分支限界法,其中不需要排序的是 動態(tài)規(guī)劃 ,需要排序的是 回溯法 , 分支限界法 。15、使用回溯法進行狀態(tài)空間樹裁剪
15、分支時一般有兩個標準:約束條件和目標函數(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)子結(jié)構 性質(zhì) 。21. 動態(tài)規(guī)劃算法的基本思想是將待求解問題分解成若干 子問題 ,先求解 子問題 ,然后從這些 子問題 的解得到原問題的解。22.算法是由若干條指
16、令組成的有窮序列,且要滿足輸入、 輸出 、確定性和 有限性 四條性質(zhì)。23、大整數(shù)乘積算法是用 分治法 來設計的。24、以廣度優(yōu)先或以最小耗費方式搜索問題解的算法稱為 分支限界法 。25、舍伍德算法總能求得問題的 一個解 。26、 貪心選擇性質(zhì) 是貪心算法可行的第一個基本要素,也是貪心算法與動態(tài)規(guī)劃算法的主要區(qū)別。27.快速排序算法是基于 分治策略 的一種排序算法。28.動態(tài)規(guī)劃算法的兩個基本要素是 最優(yōu)子結(jié)構 性質(zhì)和 重疊子問題 性質(zhì) 。 30.回溯法是一種既帶有 系統(tǒng)性 又帶有 跳躍性 的搜索算法。 31.分支限界法主要有 隊列式(FIFO) 分支限界法和 優(yōu)先隊列式 分支限界法。32分支
17、限界法是一種既帶有 系統(tǒng)性 又帶有 跳躍性 的搜索算法。33回溯法搜索解空間樹時,常用的兩種剪枝函數(shù)為 約束函數(shù) 和 限界函數(shù) 。34.任何可用計算機求解的問題所需的時間都與其 規(guī)模 有關。35.快速排序算法的性能取決于 劃分的對稱性 。三、算法填空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 - =w
18、i; if (i<=n) xi=c/wi;2.最大子段和: 動態(tài)規(guī)劃算法int MaxSum(int n, int a) int sum=0, b=0; /sum存儲當前最大的bj, b存儲bj for(int j=1; j<=n; j+) if (b>0) b+= aj ; else b=ai; ; /一旦某個區(qū)段和為負,則從下一個位置累和 if(b>sum) sum=b; return sum; 3.貪心算法求裝載問題template<class Type>void Loading(int x, Type w, Type c, int n) int *t
19、 = new int n+1; ; for (int i = 1; i <= n; i+) xi = 0; for (int i = 1; i <= n && wti <= c; i+) xti = 1; ;4.貪心算法求活動安排問題template<class Type>void GreedySelector(int n, Type s, Type f, bool A) A1=true; int j=1; for (int i=2;i<=n;i+) if (si>=fj) Ai=true; j=i; else Ai=false; 5.
20、快速排序template<class Type>void QuickSort (Type a, int p, int r) if (p<r) int q=Partition(a,p,r); QuickSort (a,p,q-1); /對左半段排序 QuickSort (a,q+1,r); /對右半段排序 6.排列問題Template <class Type>void perm(Type list, int k, int m ) /產(chǎn)生listk:m的所有排列 if(k=m) /只剩下一個元素 for (int i=0;i<=m;i+) cout<<
21、;listi; cout<<endl; else /還有多個元素待排列,遞歸產(chǎn)生排列 for (int i=k; i<=m; i+) swap(listk,listi); perm(list,k+1;m); swap(listk,listi); 四、問答題1.分治法的基本思想時將一個規(guī)模為n的問題分解為k個規(guī)模較小的子問題,這些子問題互相獨立且與原問題相同。遞歸地解這些子問題,然后將各個子問題的解合并得到原問題的解。2設計動態(tài)規(guī)劃算法的主要步驟為: (1)找出最優(yōu)解的性質(zhì),并刻劃其結(jié)構特征。(2)遞歸地定義最優(yōu)值。(3)以自底向上的方式計算出最優(yōu)值。(4)根據(jù)計算最優(yōu)值時得到
22、的信息,構造最優(yōu)解。3. 分治法與動態(tài)規(guī)劃法的相同點與不同點分別是什么? 兩者的相同點:將待求解的問題分解成若干個子問題,先求解子問題,然后從這些子問題的解得到原問題的解。兩者的不同點是:適合于用動態(tài)規(guī)劃法求解的問題,經(jīng)分解得到的子問題往往不是互相獨立的。而用分治法求解的問題,經(jīng)分解得到的子問題往往是互相獨立的。4. 分支限界法與回溯法的相同點與不同點分別是什么? 相同點:都是一種在問題的解空間樹T中搜索問題解的算法。 不同點:(1)求解目標不同;(2)搜索方式不同;(3)對擴展結(jié)點的擴展方式不同; (4)存儲空間的要求不同。5用回溯法搜索子集樹的算法為:void backtrack (int
23、 t) if (t>n) output(x); else for (int i=0;i<=1;i+) xt=i; if (constraint(t)&&bound(t) backtrack(t+1); 6. 分治法所能解決的問題一般具有的幾個特征是: (1)該問題的規(guī)??s小到一定的程度就可以容易地解決; (2)該問題可以分解為若干個規(guī)模較小的相同問題,即該問題具有最優(yōu)子結(jié)構性質(zhì); (3)利用該問題分解出的子問題的解可以合并為該問題的解; (4)原問題所分解出的各個子問題是相互獨立的,即子問題之間不包含公共的子問題。7. 用分支限界法設計算法的步驟是:(1)針對所給問
24、題,定義問題的解空間(對解進行編碼);分(2)確定易于搜索的解空間結(jié)構(按樹或圖組織解) ; (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. 回溯法中常見的兩類典型的解空間樹是子集樹和排列樹。 當所給的問題是從n個元素的集合S中找出滿足某種性質(zhì)的子集時,相應的解空間樹稱為子集樹。這類子集樹通常有2n個葉結(jié)點,遍歷子
25、集樹需O(2n)計算時間 。 當所給的問題是確定n個元素滿足某種性質(zhì)的排列時,相應的解空間樹稱為排列樹。這類排列樹通常有n!個葉結(jié)點。遍歷排列樹需要O(n!)計算時間。10. 分支限界法的搜索策略是: 在擴展結(jié)點處,先生成其所有的兒子結(jié)點(分支),然后再從當前的活結(jié)點表中選擇下一個擴展結(jié)點。為了有效地選擇下一擴展結(jié)點,加速搜索的進程,在每一個活結(jié)點處,計算一個函數(shù)值(限界),并根據(jù)函數(shù)值,從當前活結(jié)點表中選擇一個最有利的結(jié)點作為擴展結(jié)點,使搜索朝著解空間上有最優(yōu)解的分支推進,以便盡快地找出一個最優(yōu)解。五、算法題1. 給定已按升序排好序的n個元素a0:n-1,現(xiàn)要在這n個元素中找出一特定元素x,
26、返回其在數(shù)組中的位置,如果未找到返回-1。 寫出二分搜索的算法,并分析其時間復雜度。1. template<class Type> int BinarySearch(Type a, const Type& x, int n)/在a0:n中搜索x,找到x時返回其在數(shù)組中的位置,否則返回-1 Int 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; 時間復雜性為O(logn)2. 利用分治算法寫出合并排序的算
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【-學案導學設計】2020-2021學年高中物理(人教版-選修3-1)第3章-第3節(jié)-課時作業(yè)
- 【名師一號】2020-2021學年高中地理新課標版必修1-雙基限時練11
- 《紅對勾》2022屆高考英語人教版新課標一輪總復習-滾動測試10
- 永州市2025屆高三高考第二次模擬考試(二模)生物試卷
- 【創(chuàng)新大課堂】2022屆高三生物一輪復習人教版課時作業(yè)-第4單元-第11講-減數(shù)分裂和受精作用-
- 【創(chuàng)新設計】2021版生物二輪專題復習(閩津渝版)專題整合+演練提升:1-7-1基因工程與克隆技術
- 天津市外國語大學附屬外國語學校2024-2025學年七年級上學期期末階段性檢測英語試題(含答案無聽力原文無音頻)
- (語文試卷)2024年秋綿陽市游仙區(qū)九年級期末測試
- 浙江音樂學院2023年本科招生簡章
- 【名師一號】2020-2021學年高中英語人教版必修4語篇提能-22
- 長安杯質(zhì)量要求
- 2021年醫(yī)療衛(wèi)生招聘考試題庫附答案
- 鋼筋廠建設施工方案
- 醫(yī)院臨時醫(yī)囑單
- 剝皮芝煤礦消防安全自檢方案及自查報告
- GB/T 22740-2008地理標志產(chǎn)品靈寶蘋果
- GB/T 11211-2009硫化橡膠或熱塑性橡膠與金屬粘合強度的測定二板法
- 《人力資源情緒管理問題研究開題報告(含提綱)》
- 浪潮云海數(shù)據(jù)中心管理平臺v5.0-快速部署指南v1.0centos
- 哮喘吸入裝置的正確使用方法課件
- 2023年成都東部集團有限公司招聘筆試題庫及答案解析
評論
0/150
提交評論