計(jì)算機(jī)算法設(shè)計(jì)和分析習(xí)題及答案解析_第1頁(yè)
計(jì)算機(jī)算法設(shè)計(jì)和分析習(xí)題及答案解析_第2頁(yè)
計(jì)算機(jī)算法設(shè)計(jì)和分析習(xí)題及答案解析_第3頁(yè)
計(jì)算機(jī)算法設(shè)計(jì)和分析習(xí)題及答案解析_第4頁(yè)
計(jì)算機(jī)算法設(shè)計(jì)和分析習(xí)題及答案解析_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、選擇題1、二分搜索算法是利用( A )實(shí)現(xiàn)的算法。A、分治策略 B 、動(dòng)態(tài)規(guī)劃法 C、貪心法 D 、回溯法2、下列不是動(dòng)態(tài)規(guī)劃算法基本步驟的是( A )。A、找出最優(yōu)解的性質(zhì) ? B、構(gòu)造最優(yōu)解? C、算出最優(yōu)解 D、定義最優(yōu)解3、最大效益優(yōu)先是(?A )的一搜索方式。A、分支界限法? B 、動(dòng)態(tài)規(guī)劃法? C、貪心法 D 、回溯法4.回溯法解旅行售貨員問(wèn)題時(shí)的解空間樹(shù)是( A )。A、子集樹(shù) B 、排列樹(shù) C 、深度優(yōu)先生成樹(shù)D 、廣度優(yōu)先生成樹(shù)5.下列算法中通常以自底向上的方式求解最優(yōu)解的是(?B?)。A、備忘錄法B 、動(dòng)態(tài)規(guī)劃法C 、貪心法 D 、回溯法6、衡量一個(gè)算法好壞的標(biāo)準(zhǔn)是( C

2、)。A運(yùn)行速度快B占用空間少C時(shí)間復(fù)雜度低 D代碼短7、以下不可以使用分治法求解的是( D )。A棋盤(pán)覆蓋問(wèn)題 B選擇問(wèn)題C歸并排序D 0/1背包問(wèn)題8 .實(shí)現(xiàn)循環(huán)賽日程表利用的算法是( ?A )。A、分治策略 B、動(dòng)態(tài)規(guī)劃法C 、貪心法 D 、回溯法9 .下面不是分支界限法搜索方式的是(?D?)。A、廣度優(yōu)先B 、最小耗費(fèi)優(yōu)先C 、最大效益優(yōu)先 D、深度優(yōu)先10 .下列算法中通常以深度優(yōu)先方式系統(tǒng)搜索問(wèn)題解的是(?D?)。A、備忘錄法 B、動(dòng)態(tài)規(guī)劃法C 、貪心法 D 、回溯法11 .備忘錄方法是那種算法的變形。( B)A、分治法 B 、動(dòng)態(tài)規(guī)劃法C 、貪心法 D 、回溯法12 .哈夫曼編碼的

3、貪心算法所需的計(jì)算時(shí)間為(?B?)。A、O (n2n)B、O (nlogn)C 、O (2n) D 、O (n)13 .分支限界法解最大團(tuán)問(wèn)題時(shí),活結(jié)點(diǎn)表的組織形式是(?B?)。A、最小堆 B、最大堆 C 、棧 D 、數(shù)組14 .最長(zhǎng)公共子序列算法利用的算法是(?B?)。A、分支界限法 B、動(dòng)態(tài)規(guī)劃法 C 、貪心法 D、回溯法15 .實(shí)現(xiàn)棋盤(pán)覆蓋算法利用的算法是(?A )。A、分治法 B 、動(dòng)態(tài)規(guī)劃法 C 、貪心法 D、回溯法16 .下面是貪心算法的基本要素的是(?C?)。A、重疊子問(wèn)題B 、構(gòu)造最優(yōu)解C、貪心選擇性質(zhì)D、定義最優(yōu)解17 .回溯法的效率不依賴于下列哪些因素( D )A.滿足顯約

4、束的值的個(gè)數(shù)B.計(jì)算約束函數(shù)的時(shí)間C.計(jì)算限界函數(shù)的時(shí)間D.確定解空間的時(shí)間18 .下面哪種函數(shù)是回溯法中為避免無(wú)效搜索采取的策略(?B?)A.遞歸函數(shù)B. 剪枝函數(shù)C o隨機(jī)數(shù)函數(shù)D.搜索函數(shù)19 .(?D?)是貪心算法與動(dòng)態(tài)規(guī)劃算法的共同點(diǎn)。A、重疊子問(wèn)題 B、構(gòu)造最優(yōu)解 C、貪心選擇性質(zhì) D、最優(yōu)子結(jié)構(gòu)性質(zhì)20 .矩陣連乘問(wèn)題的算法可由( B )設(shè)計(jì)實(shí)現(xiàn)。A、分支界限算法 B 、動(dòng)態(tài)規(guī)劃算法C、貪心算法D 、回溯算法21.分支限界法解旅行售貨員問(wèn)題時(shí),活結(jié)點(diǎn)表的組織形式是(A )。A、最小堆 B 、最大堆 C 、棧 D 、數(shù)組22、Strassen矩陣乘法是利用(?A )實(shí)現(xiàn)的算法。A、

5、分治策略B 、動(dòng)態(tài)規(guī)劃法C 、貪心法 D、回溯法23、使用分治法求解不需要滿足的條件是( A )。A子問(wèn)題必須是一樣的B子問(wèn)題不能夠重復(fù)C子問(wèn)題的解可以合并D 原問(wèn)題和子問(wèn)題使用相同的方法解24、下面問(wèn)題(B )不能使用貪心法解決。A單源最短路徑問(wèn)題B N 皇后問(wèn)題 C最小生成樹(shù)問(wèn)題D背包問(wèn)題25、下列算法中不能解決0/1背包問(wèn)題的是( A )A貪心法B動(dòng)態(tài)規(guī)劃C回溯法D分支限界法26、回溯法搜索狀態(tài)空間樹(shù)是按照( C )的順序。A中序遍歷B廣度優(yōu)先遍歷 C深度優(yōu)先遍歷 D層次優(yōu)先遍歷27 .實(shí)現(xiàn)合并排序利用的算法是(??A?)。A、分治策略 B、動(dòng)態(tài)規(guī)劃法C、貪心法 D、回溯法28 .下列是

6、動(dòng)態(tài)規(guī)劃算法基本要素的是(?D?)。A、定義最優(yōu)解 B、構(gòu)造最優(yōu)解C、算出最優(yōu)解 D、子問(wèn)題重疊性質(zhì)29 .下列算法中通常以自底向下的方式求解最優(yōu)解的是( B )。' |/A、分治法 B、動(dòng)態(tài)規(guī)劃法 C、貪心法 D、回溯法30 .采用廣度優(yōu)先策略搜索的算法是(?A?)。A、分支界限法 B、動(dòng)態(tài)規(guī)劃法C、貪心法 D、回溯法I I I I31 、合并排序算法是利用(? A )實(shí)現(xiàn)的算法。A、分治策略 B、動(dòng)態(tài)規(guī)劃法C、貪心法 D、回溯法32 、背包問(wèn)題的貪心算法所需的計(jì)算時(shí)間為( B )A、O (n2n)B 、O (nlogn) C 、O (2n)D 、O (n)33 .實(shí)現(xiàn)大整數(shù)的乘法是

7、利用的算法(?C?)。A、貪心法 B、動(dòng)態(tài)規(guī)劃法C、分治策略 D、回溯法34 . 0-1背包問(wèn)題的回溯算法所需的計(jì)算時(shí)間為(?A?)A、O ( n2n) B、O ( nlogn ) C、O (2n) D、O (n)35 .采用最大效益優(yōu)先搜索方式的算法是(?A?)。A、分支界限法 B、動(dòng)態(tài)規(guī)劃法C、貪心法 D、回溯法36 .貪心算法與動(dòng)態(tài)規(guī)劃算法的主要區(qū)別是(?B?)。A、最優(yōu)子結(jié)構(gòu) B、貪心選擇性質(zhì) C、構(gòu)造最優(yōu)解 D、定義最優(yōu)解37 .實(shí)現(xiàn)最大子段和利用的算法是( ?B )。A、分治策略 B、動(dòng)態(tài)規(guī)劃法C、貪心法 D、回溯法38 .優(yōu)先隊(duì)列式分支限界法選取擴(kuò)展結(jié)點(diǎn)的原則是( C )。A、先

8、進(jìn)先出B 、后進(jìn)先出C、結(jié)點(diǎn)的優(yōu)先級(jí) D、隨機(jī)39 .背包問(wèn)題的貪心算法所需的計(jì)算時(shí)間為(?B?)。A、O (n2n)B、O (nlogn) C、O (2n)D 、O ( n)40、廣度優(yōu)先是(?A?)的一搜索方式。A、分支界限法? B、動(dòng)態(tài)規(guī)劃法? C、貪心法? D、回溯法41 . 一個(gè)問(wèn)題可用動(dòng)態(tài)規(guī)劃算法或貪心算法求解的關(guān)鍵特征是問(wèn)題的(B )。A、重疊子問(wèn)題 B、最優(yōu)子結(jié)構(gòu)性質(zhì)C、貪心選擇性質(zhì)D、定義最優(yōu)解42 .采用貪心算法的最優(yōu)裝載問(wèn)題的主要計(jì)算量在于將集裝箱依其重量從小到大排序,故算法的時(shí)間復(fù)雜度為(B )。A、O (n2n)B、O (nlogn) C、O (2n)D、O ( n)

9、43 .以深度優(yōu)先方式系統(tǒng)搜索問(wèn)題解的算法稱為(D )。A、分支界限算法 B 、概率算法C 、貪心算法D 、回溯算法44 .實(shí)現(xiàn)最長(zhǎng)公共子序列利用的算法是(?B?)。A、分治策略 B、動(dòng)態(tài)規(guī)劃法C、貪心法 D、回溯法45 . Hanoi塔問(wèn)題如下圖所示?,F(xiàn)要求將塔座A上的的所有圓盤(pán)移到塔座B上,并仍按同樣順序疊置。移動(dòng)圓盤(pán)時(shí)遵守Hanoi塔問(wèn)題的移動(dòng)規(guī)則。由此設(shè)計(jì)出解Hanoi塔問(wèn)題的遞歸算法正確的為:( B)A. void hanoi(楙 n, int A, in C, 寐 B)vf 曲扇瞅(int n, int C, int B, int A)a if(han0蛆3 ACC&;in

10、t A, Cnt B)C.瓦罐的制題,一般具有的重要性質(zhì)為:(nanoimoven!生質(zhì) 題性質(zhì)47.喀a如hanoMn13C»B淵性質(zhì)C皮優(yōu)子結(jié)構(gòu)性質(zhì)與重疊子問(wèn)題性質(zhì)48. 回溯法在問(wèn)題的解空間樹(shù)中,按(B .重疊子問(wèn)題性質(zhì)與貪心選擇性質(zhì)D.預(yù)排序與遞歸調(diào)用B .重疊子問(wèn)題性質(zhì)與貪心選擇性質(zhì)D.預(yù)排序與遞歸調(diào)D )策略,從根結(jié)A.廣度優(yōu)先B. 活結(jié)點(diǎn)優(yōu)先 C.擴(kuò)展結(jié)點(diǎn)優(yōu)先D.書(shū)卜出發(fā)搜索解空間樹(shù)。深度優(yōu)先49.分支限界法在問(wèn)題的解空間樹(shù)中,按( 優(yōu)先 C.擴(kuò)展結(jié)點(diǎn)優(yōu)先 D.深度優(yōu)先A )策略,從根結(jié)點(diǎn)出發(fā)搜索解空間樹(shù)。A.廣度優(yōu)先B. 活結(jié)點(diǎn)50.B.C.D.voi vo VQ51

11、.常見(jiàn)白A.廣B.隊(duì) C.排D.隊(duì) 二、填空題,兩el度與 列式 列產(chǎn)法fo列武(io與堆棧式分支限界法;FSWap及南段旅與優(yōu)先隊(duì)列式分支限界法;山 Xi);D)徵)bacc+鏟k(t-1);1、 算法的2、程序是3、if (legal(t) backtrack(t+1);時(shí)間復(fù)雜性和空間算法??用某種程序設(shè)計(jì)語(yǔ)言的具體實(shí)現(xiàn)。算法的“確定性”指的是組成算法的每條復(fù)雜性之分幅令是清晰的;無(wú)歧義的。程序塊(A )是回溯法中遍歷排列樹(shù)的算法框架程序。A.4.5、6、從分治法的一般設(shè)計(jì)模式可以看出,用它設(shè)計(jì)出的程序一般是遞歸算法矩陣連乘問(wèn)題的算法可由動(dòng)態(tài)規(guī)劃 設(shè)計(jì)實(shí)現(xiàn)。算法是指解決問(wèn)題的一種方法 或

12、一個(gè)過(guò)程7、8、9、以深度優(yōu)先方式系統(tǒng)搜索問(wèn)題解的算法稱為 計(jì)算一個(gè)算法時(shí)間復(fù)雜度通??梢杂?jì)算循環(huán)次數(shù)基本操作的頻率或計(jì)算步。10、解決0/1背包問(wèn)題可以使用動(dòng)態(tài)規(guī)劃、回溯法和分支限界法,其中不需要排序的是動(dòng)態(tài)規(guī)劃問(wèn)題的最優(yōu)子結(jié)構(gòu)性質(zhì)是該問(wèn)題可用動(dòng)態(tài)規(guī)劃算法或貪心算法求解的關(guān)鍵特征O的是回溯法 ,分支限界法N皇后問(wèn)題和0/1背包背包問(wèn)題,只使用約11、使用回溯法進(jìn)行狀態(tài)空間樹(shù)裁剪分支時(shí)一般有兩個(gè)標(biāo)準(zhǔn):約束條件和目標(biāo)函數(shù)的界,問(wèn)題正好是兩種不同的類(lèi)型,其中同時(shí)使用約束條件和目標(biāo)函數(shù)的界進(jìn)行裁剪的是0/1束條件進(jìn)行裁剪的是N 皇后問(wèn)題12、貪心選擇性質(zhì)是貪心算法可行的第一個(gè)基本要素,也是貪心算法與

13、動(dòng)態(tài)規(guī)劃算法的主要區(qū)別O13、矩陣連乘問(wèn)題的算法可由動(dòng)態(tài)規(guī)劃設(shè)計(jì)實(shí)現(xiàn)。14 .貪心算法的基本要素是貪心選擇性質(zhì)和最優(yōu)子結(jié)構(gòu)15 .動(dòng)態(tài)規(guī)劃算法的基本思想是將待求解問(wèn)題分解成若干子問(wèn)題,先求解 子問(wèn)題 ,然后從這些 子問(wèn)題的解得到原問(wèn)題的解。16 .算法是由若干條指令組成的有窮序列,且要滿足輸入、輸出、確定性和有限性 四條性質(zhì)。17 、大整數(shù)乘積算法是用 分治法來(lái)設(shè)計(jì)的。18 、以廣度優(yōu)先或以最小耗費(fèi)方式搜索問(wèn)題解的算法稱為分支限界法 o19 、貪心選擇性質(zhì)是貪心算法可行的第一個(gè)基本要素,也是貪心算法與動(dòng)態(tài)規(guī)劃算法的主要區(qū)別。20 .快速排序算法是基于分治策略的一種排序算法。21 .動(dòng)態(tài)規(guī)劃算法

14、的兩個(gè)基本要素是.最優(yōu)子結(jié)構(gòu)性質(zhì)和重疊子問(wèn)題性質(zhì)。22 .回溯法是一種既帶有系統(tǒng)性 又帶有跳躍性 的搜索算法。23 .分支限界法主要有隊(duì)列式(FIFO)分支限界法和優(yōu)先隊(duì)列式分支限界法。24 .分支限界法是一種既帶有系統(tǒng)性 又帶有跳躍性的搜索算法。25 .回溯法搜索解空間樹(shù)時(shí),常用的兩種剪枝函數(shù)為約束函數(shù)和 限界函數(shù) 。26 .任何可用計(jì)算機(jī)求解的問(wèn)題所需的時(shí)間都與其規(guī)模 有關(guān)。27 .快速排序算法的性能取決于劃分的對(duì)稱性 o28 .所謂貪心選擇性質(zhì)是指所求問(wèn)題的整體最優(yōu)解可以通過(guò)一系列局部最優(yōu)的選擇,即貪心選擇來(lái)達(dá)到。29 .所謂最優(yōu)子結(jié)構(gòu)性質(zhì)是指問(wèn)題的最優(yōu)解包含了其子問(wèn)題的最優(yōu)解一30 .

15、回溯法是指具有限界函數(shù)的深度優(yōu)先生成法。31 .用回溯法解題的一個(gè)顯著特征是在搜索過(guò)程中動(dòng)態(tài)產(chǎn)生問(wèn)題的解空間。在任何時(shí)刻,算法只保存從根結(jié)點(diǎn)到當(dāng)前擴(kuò)展結(jié)點(diǎn)的路徑。如果解空間樹(shù)中從根結(jié)點(diǎn)到葉結(jié)點(diǎn)的最長(zhǎng)路徑的長(zhǎng)度為h(n),則回溯法所需的計(jì)算空間通常為O(h(n)。32 .回溯法的算法框架按照問(wèn)題的解空間一般分為子集樹(shù)算法框架與 排列樹(shù)算法框架。33 .用回溯法解0/1背包問(wèn)題時(shí),該問(wèn)題的解空間結(jié)構(gòu)為子集樹(shù) 結(jié)構(gòu)。34 .用回溯法解批處理作業(yè)調(diào)度問(wèn)題時(shí),該問(wèn)題的解空間結(jié)構(gòu)為排列樹(shù)結(jié)構(gòu)。35 .旅行售貨員問(wèn)題的解空間樹(shù)是排列樹(shù) 。三、算法填空1.背包問(wèn)題的貪心算法void Knapsack(int

16、n,float M,float v,float w,float x口)/重量為w1.n, 價(jià)值為v1.n的n個(gè)物品,裝入容量為M的背包/用貪心算法求最優(yōu)解向量x1.nint i; Sort(n,v,w);for (i=1;i<=n;i+) xi=0;float c=M; < iifor (i=1;i<=n;i+)if (wi>c) break;xi=1; j c-=wi if (i<=n) xi=c/wi;2 .最大子段和:動(dòng)態(tài)規(guī)劃算法int MaxSum(int n, int a口) int sum=0, b=0; /sum存儲(chǔ)當(dāng)前最大的bj, b 存儲(chǔ) bjf

17、or (int j=1; j<=n ; j+) if (b>0) b+= aj;else b=ai;/一旦某個(gè)區(qū)段和為負(fù),則從下一個(gè)位置累和if(b>sum) sum=b;return sum ;3 .貪心算法求活動(dòng)安排問(wèn)題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>=) Ai=true;j=i; else Ai=false;4 .快速排序template<

18、class Type>void QuickSort (Type a, int p, int r)if (p<r)int q=Partition(a,p,r);QuickSort (a,p,q-1); /對(duì)左半段排序QuickSort (a,q+1,r); /對(duì)右半段排序5 .回溯法解迷宮問(wèn)題迷宮用二維數(shù)組存儲(chǔ),用 'H'表示墻,'O'表示通道int x1,y1,success=0;/ 出口點(diǎn)void MazePath(int x,int y)/遞歸求解:求迷宮maze從入口 (x,y)到出口 (x1,y1)的一條路徑 mazexy='*

19、9;/路徑置為 *if (x=x1)&&(y=y1) success=1; /到出口 則成功elseif (mazexy+1='O') MazePath(x,+y);/東鄰方格是通路,向東嘗試if (!success)&&(mazex+1y='O') MazePath(+x,y);/不成功且南鄰方格是通路,向南嘗試if (!success)&&(mazexy-1='O') MazePath(x,-y);/不成功且西鄰方格是通路,向西嘗試if (!success)&&(mazex-1y

20、='O') MazePath(-x,y);/不成功且北鄰方格是通路,向北嘗試if (!success) mazexy='' /死胡同置為 四、算法設(shè)計(jì)題1 .給定已按升序排好序的n個(gè)元素a0:n-1,現(xiàn)要在這n個(gè)元素中找出一特定元素x,返回其在數(shù)組中的位置,如果未找到返回-1 O寫(xiě)出二分搜索的算法,并分析其時(shí)間復(fù)雜度。template<class Type>int BinarySearch(Type a口,const Type& x, int n)/在a0:n中搜索x,找到x時(shí)返回其在數(shù)組中的位置,否則返回-1Int left=0; int

21、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;時(shí)間復(fù)雜性為 O(logn)2 .利用分治算法寫(xiě)出合并排序的算法,并分析其時(shí)間復(fù)雜度|."1 1 ' 1void MergeSort(Type a, int left, int right) if (left<right) /至少有2個(gè)元素int i=(left+right)/

22、2; /取中點(diǎn)mergeSort(a, left, i);mergeSort(a, i+1, right);merge(a, b, left, i, right); /合并到數(shù)組 bcopy(a, b, left, right); /復(fù)制回?cái)?shù)組 a算法在最壞情況下的時(shí)間復(fù)雜度為O(nlogn) o3 .N皇后回溯法bool Queen:Place(int k) /檢查xk位置是否合法for (int j=1;j<k;j+)if (abs(k-j)=abs(xj-xk)|(xj=xk) return false;return true; Ivoid Queen:Backtrack(int

23、t)if (t>n) sum+;else for (int i=1;i<=n;i+)xt=i;if (約束函數(shù) )Backtrack(t+1);4 .最大團(tuán)問(wèn)題void Clique:Backtrack(int i) /計(jì)算最大團(tuán) if (i > n) /到達(dá)葉結(jié)點(diǎn)for (int j = 1; j <= n; j+) bestxj = xj; bestn = cn; return;/ 檢查頂點(diǎn)i與當(dāng)前團(tuán)的連接 int OK = 1;for (int j = 1; j < i; j+)if (xj && aij = 0) / iOK = 0; break;if (OK ) /進(jìn)入左子樹(shù)xi = 1; cn+;與j不相連Backtrack(i+1);xi = 0; cn-; if (cn+n-i>bestn) /xi = 0;Backtrack(i+1); 5.順序表存儲(chǔ)表示如下: typedef structRedType rMAXSIZE+1; / int length; /SqL

溫馨提示

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

評(píng)論

0/150

提交評(píng)論