版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
算法練習(xí)題---算法概述、選擇題1、下面關(guān)于算法的描述,正確的是( )A、一個(gè)算法只能有一個(gè)輸入B、算法只能用框圖來表示C一個(gè)算法的執(zhí)行步驟可以是無限的D一個(gè)完整的算法,不管用什么方法來表示,都至少有一個(gè)輸出結(jié)果2、一位愛好程序設(shè)計(jì)的同學(xué),想通過程序設(shè)計(jì)解決“韓信點(diǎn)兵”的問題,他制定的如下工作過程中,更恰當(dāng)?shù)氖? )A設(shè)計(jì)算法,編寫程序,提出問題,運(yùn)行程序,得到答案R分析問題,編寫程序,設(shè)計(jì)算法,運(yùn)行程序,得到答案G分析問題,設(shè)計(jì)算法,編寫程序,運(yùn)行程序,得到答案D設(shè)計(jì)算法,提出問題,編寫程序,運(yùn)行程序,得到答案TOC\o"1-5"\h\z3、下面說法正確的是( )A算法+數(shù)據(jù)結(jié)構(gòu)=程序B、算法就是程序G數(shù)據(jù)結(jié)構(gòu)就是程序 D、算法包括數(shù)據(jù)結(jié)構(gòu)4、衡量一個(gè)算法好壞的標(biāo)準(zhǔn)是( )0A運(yùn)行速度快B、占用空間少 G時(shí)間復(fù)雜度低 D代碼短5、解決一個(gè)問題通常有多種方法。若說一個(gè)算法“有效”是指( )。A、這個(gè)算法能在一定的時(shí)間和空間資源限制內(nèi)將問題解決B、這個(gè)算法能在人的反應(yīng)時(shí)間內(nèi)將問題解決C、這個(gè)算法比其他已知算法都更快地將問題解決DA和C6、算法分析中,記號(hào)。表示( ),記號(hào)。表示( )。A.漸進(jìn)下界 B.漸進(jìn)上界 C.非緊上界 D.非緊下界7、以下關(guān)于漸進(jìn)記號(hào)的性質(zhì)是正確的有:( )A.f(n)-O(g(n)),g(n)-G'(h(n))=f(n)-O(h(n))B.f(n)=O(g(n)),g(n)=O(h(n))=h(n)=O(f(n))C.O(f(n))+O(g(n))=O(min{f(n),g(n)})D.f(n)=O(g(n))=g(n)=O(f(n))8、記號(hào)。的定義正確的是( )。A.O(g(n))={f(n)|存在正常數(shù)c和n0使得對(duì)所有n至n0有:0-f(n)-cg(n)};B.O(g(n))={f(n)|存在正常數(shù)c和n0使得對(duì)所有n^n0有:0-cg(n)-f(n)};
B.O(g(n))={f(n)|C.O(g(n))={f(n)|對(duì)于任何正常數(shù)c>0,存在正數(shù)和n0>0使得對(duì)所有n^n0有0C.O(g(n))={f(n)|領(lǐng)n)<cg(n)};D.O(g(n))={f(n)|對(duì)于任何正常數(shù)c>0,存在正數(shù)和n0>0使得對(duì)所有n之n0有:0Mcg(n)<f(n)};9、記號(hào)C的定義正確的是( )。O(g(n))={f(n)|O(g(n))={f(n)|CO(g(n))={f(n)|存在正常數(shù)c和n0使得對(duì)所有n至n0有:0Mf(n)O(g(n))={f(n)|O(g(n))={f(n)|CO(g(n))={f(n)|存在正常數(shù)c和n0使得對(duì)所有n之n0有:0Mcg(n)工f(n)};對(duì)于任何正常數(shù)c>0,存在正數(shù)和n0>0使得對(duì)所有n2n0有:0S(n)<cg(n)};D.O(g(n))={f(n)| 對(duì)于任何正常數(shù)c>0,存在正數(shù)和n0>0使得對(duì)所有n之n0有:0-cg(n)<f(n)};、填空題1、算法的性質(zhì)包括輸入、輸出、、 、有限性。4、算法的復(fù)雜性是的度量,是評(píng)價(jià)算法優(yōu)劣的重要依據(jù)。6、計(jì)算機(jī)的資源最重要的是時(shí)間和空間資源。因而,算法的復(fù)雜性有和之分。7、算法復(fù)雜度依賴于三方面:、和算法本身。8、程序是用某種程序設(shè)計(jì)語言的具體實(shí)現(xiàn)。9、算法是指解決問題的或步驟的描述。11、計(jì)算一個(gè)算法時(shí)間復(fù)雜度通??梢杂?jì)算、或計(jì)算步。16、任何可用計(jì)算機(jī)求解的問題所需的時(shí)間都與其有關(guān)。算法練習(xí)題---遞歸與分治策略一、選擇題10、Hanoi塔問題如下圖所示?,F(xiàn)要求將塔座A上的的所有圓盤移到塔座B上,并仍按同樣順序疊置。移動(dòng)圓盤時(shí)遵守Hanoi塔問題的移動(dòng)規(guī)則。由此設(shè)計(jì)出解Hanoi塔問題的遞歸算法正確的為:( )voidhanoi(intn,intA,intC,intB){if(n>0){hanoi(n-1,A,C,B);
move(n,a,b);hanoi(n-1,C,B,A);}}voidhanoi(intn,intA,intB,intC){if(n>0){hanoi(n-1,A,C,B);
move(n,a,b);hanoi(n-1,C,B,A);}}voidhanoi(intn,intC,intB,intA){if(n>0){hanoi(n-1,A,C,B);
move(n,a,b);hanoi(n-1,C,B,A);}}voidhanoi(intn,intC,intA,intB){if(n>0){hanoi(n-1,A,C,B);
move(n,a,b);hanoi(n-1,C,B,A);}}11、二分搜索算法是利用( )實(shí)現(xiàn)的算法。A、分治策略B、動(dòng)態(tài)規(guī)劃法C、貪心法D、回溯法TOC\o"1-5"\h\z12、以下不可以使用分治法求解的是( )。A棋盤覆蓋問題 B 選擇問題 C 歸并排序 D0/1 背包問題13、實(shí)現(xiàn)循環(huán)賽日程表利用的算法是( )。A、分治策略 B、動(dòng)態(tài)規(guī)劃法 C、貪心法 D回溯法14、實(shí)現(xiàn)棋盤覆蓋算法利用的算法是( )0A、分治法B、動(dòng)態(tài)規(guī)劃法 C、貪心法D、回溯法15、Strassen矩陣乘法是利用( )實(shí)現(xiàn)的算法。A、分治策H& R動(dòng)態(tài)規(guī)劃法 C、貪心法D回溯法16、使用分治法求解不需要滿足的條件是()。A子問題必須是一樣的 B子問題不能夠重復(fù)C子問題的解可以合并 D原問題和子問題使用相同的方法解17、實(shí)現(xiàn)合并排序利用的算法是( )0A、分治策略 B、動(dòng)態(tài)規(guī)劃法 C、貪心法 D回溯法18、實(shí)現(xiàn)大整數(shù)的乘法是利用的算法( )。
A、貪心法A、貪心法B、動(dòng)態(tài)規(guī)劃法C、分治策略二、填空題5、分治法的基本思想是將一個(gè)規(guī)模為n的問題分解為k個(gè)規(guī)模較小的子問題,這些子問題互相且與原問題相同。10、從分治法的一般設(shè)計(jì)模式可以看出,用它設(shè)計(jì)出的程序一般是。14、快速排序算法是基于的一種排序算法。17、快速排序算法的性能取決于三、簡(jiǎn)答題3、分治法所能解決的問題一般具有的幾個(gè)特征是:答:(1)該問題的規(guī)??s小到一定的程度就可以容易地解決;(2)該問題可以分解為若干個(gè)規(guī)模較小的相同問題,即該問題具有最優(yōu)子結(jié)構(gòu)性質(zhì) ;(3)利用該問題分解出的子問題的解可以合并為該問題的解;(4)原問題所分解出的各個(gè)子問題是相互獨(dú)立的,即子問題之間不包含公共的子問題。4、分治法與動(dòng)態(tài)規(guī)劃法的異同。答:相同點(diǎn):將待求解的問題分解成若干個(gè)子問題,先求解子問題,然后從這些子問題的解得到原問題的解。不同點(diǎn):適合于用動(dòng)態(tài)規(guī)劃法求解的問題,經(jīng)分解得到的子問題往往不是互相獨(dú)立的。而用分治法求解的問題,經(jīng)分解得到的子問題往往是互相獨(dú)立的。8、老板有一袋金塊(共n塊,n是2的幕(n>=2)),最優(yōu)秀的雇員得到其中最重的一塊,最差的雇員得到其中最輕的一塊。假設(shè)有一臺(tái)比較重量的儀器,希望用最少的比較次數(shù)找出最重的金塊。答:n02,識(shí)別出最重和最輕的金塊,一次比較就足夠了。n>2,第一步,把這袋金塊平分成兩個(gè)小袋A和B。第二步,分別找出在A和B中最重和最輕的金塊。設(shè)A中最重和最輕的金塊分別為HA與LA,以此類推,B中最重和最輕的金塊分別為HB和LB。第三步,通過比較HA和HB,可以找到所有金塊中最重的;通過比較LA和LB,可以找到所有金塊中最輕的。在第二步中,若n>2,則遞歸地應(yīng)用分而治之方法。9、Tom很頑皮。一天,他把假幣投到儲(chǔ)錢罐里。之后,他擔(dān)心爸爸揍它,想從N個(gè)錢幣里找出那個(gè)假幣。他知道假幣的重量比其他錢幣輕,但不知道如何找到它,于是禁不住哭了。也許你能幫他。請(qǐng)描述一個(gè)通過使用天平找到假幣的算法,并分析你算法的運(yùn)行時(shí)間。11、對(duì)下面的遞歸算法,寫出調(diào)用f(4)的執(zhí)行結(jié)果。voidf(intk){if(k>0){printf("%d\n",k);f(k-1);f(k-1);}}四、算法填空.快速排序voidQuicksort(inta口,intp,intr){if(P<r){intq=Partition(a,p,r);;// 對(duì)左半段排序;// 對(duì)右半段排序}}.NF歹I」問題voidperm(intlist口,intk,intm){//產(chǎn)生[list[k:m] 的所有排列if(J {//只剩下一個(gè)元素for(inti=0;i<=m;i++)cout<<list[i];cout<<endl;}else// 還有多個(gè)元素待排列,遞歸產(chǎn)生排列for( —) {swap(list[k] ,list[i]);swap(list[k],list[i]);}}五、算法題.給定已按升序排好序的n個(gè)元素a[0:n-1],現(xiàn)要在這n個(gè)元素中找出一特定元素x,返回其在數(shù)組中的位置,如果未找到返回-1。寫出二分搜索的算法,并分析其時(shí)間復(fù)雜度。template<classType>intBinarySearch(Typea[],constType&x,intn){//在a[0:n]中搜索 x,找到 x時(shí)返回其在數(shù)組中的位置,否則返回-1Intleft=0;intright=n-1;While(left<=right){intmiddle=(left+right)/2;if(x==a[middle])returnmiddle;if(x>a[middle])left=middle+1;elseright=middle-1;}Return-1;}時(shí)間復(fù)雜性為O(logn).利用分治算法寫出合并排序的算法,并分析其時(shí)間復(fù)雜度voidMergeSort(Typea[],intleft,intright){if(left<right)// 至少有2個(gè)元素{inti=(left+right)/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)。算法練習(xí)題---動(dòng)態(tài)規(guī)劃一、選擇題19、下列不是動(dòng)態(tài)規(guī)劃算法基本步驟的是A、找出最優(yōu)解的性質(zhì)B、構(gòu)造最優(yōu)解20、最長公共子序列算法利用的算法是(A分支界Bg法 R動(dòng)態(tài)規(guī)劃法21、動(dòng)態(tài)規(guī)劃算法的基本要素為(A.最優(yōu)子結(jié)構(gòu)性質(zhì)與貪心選擇性質(zhì)C.最優(yōu)子結(jié)構(gòu)性質(zhì)與重疊子問題性質(zhì)22、矩陣連乘問題的算法可由(()。C、算出最優(yōu)解D、定義最優(yōu)解)。G貪心法 D回溯法)B.重疊子問題性質(zhì)與貪心選擇性質(zhì)D. 預(yù)排序與遞歸調(diào)用)設(shè)計(jì)實(shí)現(xiàn)。A分支界限算法 B、動(dòng)態(tài)規(guī)劃算法 G貪心算法 D.分治法23、下列算法中通常以自底向上的方式求解最優(yōu)解的是( )。A、備忘錄法B、動(dòng)態(tài)規(guī)劃法 C、貪心法 D回溯法24、應(yīng)用Johnson法則的流水作業(yè)調(diào)度采用的算法是( )A.貪心算法 B.分支限界法C.分治法D.動(dòng)態(tài)規(guī)劃算法25、下列不是動(dòng)態(tài)規(guī)劃算法基本步驟的是( )。題目不好A、找出最優(yōu)解的性質(zhì) B、構(gòu)造最優(yōu)解 C、算出最優(yōu)解 D定義最優(yōu)解、填空題2、動(dòng)態(tài)規(guī)劃算法的基本思想就將待求問題、先求解子問題,然后從這些子問題的解得到原問題的解。3、設(shè)計(jì)動(dòng)態(tài)規(guī)劃算法的4個(gè)步驟:(1),并刻畫其結(jié)構(gòu)特征。(2)。 (3)。(4)根據(jù)計(jì)算最優(yōu)值得到的信息,。12、解決0/1背包問題可以使用動(dòng)態(tài)規(guī)劃、回溯法和分支限界法,其中不需要排序的是,需要排序的是,。18、下面程序段的所需要的計(jì)算時(shí)間為。intMaxSum(intn,int*a,int&besti,int&bestj){intsum=0;for(inti=1;i<=n;i++){intthissum=0;for(intj=i;j<=n;j++){thissum+=a[j];if(thissum>sum){sum=thissum;besti=i; bestj=j;}}returnsum;}21、所謂最優(yōu)子結(jié)構(gòu)性質(zhì)是指 三、簡(jiǎn)答題1、請(qǐng)敘述動(dòng)態(tài)規(guī)劃算法與貪心算法的異同。答:共同點(diǎn):都需要最優(yōu)子結(jié)構(gòu)性質(zhì),不同點(diǎn):(1)動(dòng)態(tài)規(guī)劃:每一步作一個(gè)選擇一依賴于子問題的解。貪心方法:每一步作一個(gè)選擇一不依賴于子問題的解 。(2)動(dòng)態(tài)規(guī)劃方法的條件:子問題的重疊性質(zhì)。貪心方法的條件:最優(yōu)子結(jié)構(gòu)性質(zhì);貪心選擇性質(zhì)。(3)動(dòng)態(tài)規(guī)劃:自底向上求解;貪心方法:自頂向下求解。2、設(shè)計(jì)動(dòng)態(tài)規(guī)劃算法的主要步驟為:答:(1)找出最優(yōu)解的性質(zhì),并刻劃其結(jié)構(gòu)特征。(2)遞歸地定義最優(yōu)值。(3)以自底向上的方式計(jì)算出最優(yōu)值。(4)根據(jù)計(jì)算最優(yōu)值時(shí)得到的信息,構(gòu)造最優(yōu)解。4、分治法與動(dòng)態(tài)規(guī)劃法的異同。答:相同點(diǎn):將待求解的問題分解成若干個(gè)子問題,先求解子問題,然后從這些子問題的解得到原問題的解。不同點(diǎn):適合于用動(dòng)態(tài)規(guī)劃法求解的問題,經(jīng)分解得到的子問題往往不是互相獨(dú)立的。而用分治法求解的問題,經(jīng)分解得到的子問題往往是互相獨(dú)立的。四、算法填空2.最大子段和:動(dòng)態(tài)規(guī)劃算法intMaxSum(intn,inta口){intsum=0,b=0 ;//sum存儲(chǔ)當(dāng)前最大的b[j],b存儲(chǔ)b[j]for(intj=1 ;j<=n;j++){if(b>0)b+=a[j] ;else; //一旦某個(gè)區(qū)段和為負(fù),則從下一個(gè)位置累和if(b>sum)sum士}returnsum算法練習(xí)題---貪心算法一、選擇題TOC\o"1-5"\h\z26、能采用貪心算法求最優(yōu)解的問題,一般具有的重要性質(zhì)為: ( )A.最優(yōu)子結(jié)構(gòu)性質(zhì)與貪心選擇性質(zhì) B.重疊子問題性質(zhì)與貪心選擇性質(zhì)C.最優(yōu)子結(jié)構(gòu)性質(zhì)與重疊子問題性質(zhì) D. 預(yù)排序與遞歸調(diào)用27、貪心算法與動(dòng)態(tài)規(guī)劃算法的共同點(diǎn)是( )。A重疊子問題 R構(gòu)造最優(yōu)解 C、貪心選擇性質(zhì) D、最優(yōu)子結(jié)構(gòu)性質(zhì)28、貪心算法與動(dòng)態(tài)規(guī)劃算法的主要區(qū)別是( )。A最優(yōu)子結(jié)才B、貪心選擇Tt質(zhì) G構(gòu)造最優(yōu)解 D定義最優(yōu)解29、哈弗曼編碼的貪心算法所需的計(jì)算時(shí)間為( )。AO(n2n) BO(nlogn) C、O(2n) D>O(n)30、下面是貪心算法的基本要素的是( )。A、重疊子問題 R構(gòu)造最優(yōu)解 C、貪心選擇Tt質(zhì) D定義最優(yōu)解31、下面問題(B)不能使用貪心法解決。A單源最短路徑問題 BN皇后問題 C 最小花費(fèi)生成樹問題 D背包問題32、背包問題的貪心算法所需的計(jì)算時(shí)間為( )A、O(n2n) B、O(nlogn) C、O(2n)D、O(n)45、下列算法中不能解決0/1背包問題的是( )A貪心法B 動(dòng)態(tài)規(guī)劃 C回溯法D 分支限界法二、填空題19、有11個(gè)待安排的活動(dòng),它們具有下表所示的開始時(shí)間與結(jié)束時(shí)間,如果以貪心算法求解這些活動(dòng)的最優(yōu)安排(即為活動(dòng)安排問題:在所給的活動(dòng)集合中選出最大的相容活動(dòng)子集合),得到的最大相容活動(dòng)子集合為活動(dòng)。i1234567891011S[i]130535688212f[i]456789101112131420、所謂貪心選擇性質(zhì)是指 所求問題的整體最優(yōu)解可以通過一系列局部最優(yōu)的選擇、 即貪心選擇來達(dá)至U O21、所謂最優(yōu)子結(jié)構(gòu)性質(zhì)是指 問題的最優(yōu)解包含了其子問題的最優(yōu)解 。四、算法填空.背包問題的貪心算法voidKnapsack(intn,floatM,floatv[],floatw[],floatx[]){Sort(n,v,w);inti;floatc=M;for(i=1;i<=n;i++)x[i]=0;for(i=1;i<=n;i++){if(w[i]>c)break;x[i]=1;;}}.貪心算法求裝載問題voidLoading(intx口,intw口,intc,intn){int*t=newint[n+1];;for(inti=1;i<=n;i++)x[i]=0;for(inti=1;i<=n&&w[t[i]]<=c;i++){x[t[i]]=1; ; }}.貪心算法求活動(dòng)安排問題template<classType>voidGreedySelector(intn,Types[],Typef口,boolA口){ —; intj=1;for(inti=2;i<=n;i++){if(s[i]>=f[j]){ ; ; }elseA[i]=false;}}五、算法題5、試用貪心算法求解下列問題:將正整數(shù) n分解為若干個(gè)互不相同的自然數(shù)之和,使這些自然數(shù)的乘積最大。voiddicomp(intn,inta口){k=1;if(n<3){a[1]=0;return;}if(n<5){a[k]=1;a[++k]=n-1;return;}a[1]=2;n-=2;while(n>a[k]){k++;a[k]=a[k-1]+1; n-=a[k];}if(n==a[k]){a[k]++;n--;}for(inti=0;i<n;i++)a[k-i]++;}算法練習(xí)題一回溯法一、選擇題33、回溯法在問題的解空間樹中,按( )策略,從根結(jié)點(diǎn)出發(fā)搜索解空間樹。A.廣度優(yōu)先B. 活結(jié)點(diǎn)優(yōu)先 C. 擴(kuò)展結(jié)點(diǎn)優(yōu)先 D. 深度優(yōu)先TOC\o"1-5"\h\z34、下面哪種函數(shù)是回溯法中為避免無效搜索采取的策略( )A.遞歸函數(shù) B.剪枝函數(shù) C。隨機(jī)數(shù)函數(shù) D.搜索函數(shù)35、回溯法的效率不依賴于以下哪一個(gè)因素?( )A.產(chǎn)生x[k]的時(shí)間; B. 滿足顯式約束的x[k]值的個(gè)數(shù);C.問題的解空間的形式; D. 計(jì)算上界函數(shù)bound的時(shí)間;36、回溯法的效率不依賴于下列哪些因素( )
A.滿足顯約束的值的個(gè)數(shù) B.計(jì)算約束函數(shù)的時(shí)間C.計(jì)算限界函數(shù)的時(shí)間 D.確定解空間的時(shí)間37、下列算法中通常以深度優(yōu)先方式系統(tǒng)搜索問題解的是( )。A、備忘錄法 R動(dòng)態(tài)規(guī)劃法 C、貪心法 D回溯法38、回溯法搜索狀態(tài)空間樹是按照( )的順序。A中序遍歷B廣度優(yōu)先遍歷C深度優(yōu)先遍歷D層次優(yōu)先遍歷39、程序塊( )是回溯法中遍歷排列樹的算法框架程序。B.voidbacktrack(intt){if(t>n)output(x);elsefor(inti=0;i<=1;i++){x[t]=i;if(legal(t))
backtrack(t+1);A.voidbacktrack(intt){if(t>n)output(x);elsefor(inti=t;i<=n;i++){swap(x[t],x[i]);A.voidbacktrack(intt){if(t>n)output(x);elsefor(inti=t;i<=n;i++){swap(x[t],x[i]);if(legal(t))backtrack(t+1);swap(x[t],x[i]);}}C.voidbacktrack(intt){if(t>n)output(x);elsefor(inti=0;i<=1;i++){x[t]=i;if(legal(t))backtrack(t-1);}}D.voidbacktrack(intt){if(t>n)output(x);elsefor(inti=t;i<=n;i++){swap(x[t],x[i]);if(legal(t))backtrack(t+1);}}、填空題12、解決0/1背包問題可以使用動(dòng)態(tài)規(guī)劃、回溯法和分支限界法,其中不需要排序的是,需要排序的是,。13、使用回溯法進(jìn)行狀態(tài)空間樹裁剪分支時(shí)一般有兩個(gè)標(biāo)準(zhǔn):約束條件和目標(biāo)函數(shù)的界, N皇后問題和0/1背包問題正好是兩種不同的類型,其中同時(shí)使用約束條件和目標(biāo)函數(shù)的界進(jìn)行裁剪的是,只使用約束條件進(jìn)行裁剪的是。15、回溯法是一種既帶有又帶有的搜索算法。22、回溯法是指。23、用回溯法解題的一個(gè)顯著特征是在搜索過程中動(dòng)態(tài)產(chǎn)生問題的解空間。 在任何時(shí)刻,算法只保存從根結(jié)點(diǎn)到當(dāng)前擴(kuò)展結(jié)點(diǎn)的路徑。如果解空間樹中從根結(jié)點(diǎn)到葉結(jié)點(diǎn)的最長路徑的長度為h(n),則回溯法所需的計(jì)算空間通常為。24、回溯法的算法框架按照問題的解空間一般分為算法框架與算法框架。25、用回溯法解0/1背包問題時(shí),該問題的解空間結(jié)構(gòu)為結(jié)構(gòu)。26、用回溯法解批處理作業(yè)調(diào)度問題時(shí),該問題的解空間結(jié)構(gòu)為結(jié)構(gòu)。27、旅行售貨員問題的解空間樹是。28、用回溯法解圖的m著色問題時(shí),使用下面的函數(shù)OK檢查當(dāng)前擴(kuò)展結(jié)點(diǎn)的每一個(gè)兒子所相應(yīng)的顏色的可用性,則需耗時(shí)(漸進(jìn)時(shí)間上限)。BoolColor::OK(intk){for(intj=1;j<=n;j++)if((a[k][j]==1)&&(x[j]==x[k]))returnfalse;returntrue;}三、簡(jiǎn)答題5、分支限界法與回溯法的異同答:相同點(diǎn):都是一種在問題的解空間樹T中搜索問題解的算法。不同點(diǎn):(1)求解目標(biāo)不同; (2)搜索方式不同;(3)對(duì)擴(kuò)展結(jié)點(diǎn)的擴(kuò)展方式不同; (4)存儲(chǔ)空間的要求不同四、算法填空10.用回溯法解0/1背包問題時(shí),計(jì)算結(jié)點(diǎn)的上界的函數(shù)如下所示,請(qǐng)?jiān)诳崭裰刑钊牒线m的內(nèi)容:TypepKnap<Typew,Typep>二Bound(inti)// 計(jì)算上界{Typewcleft=c-cw;// 乘U余容量Typepb=cp;// 結(jié)點(diǎn)的上界// 以物品單位重量價(jià)值遞減序裝入物品while(i<=n&&w[i]<=cleft){ ; 4.}// 裝滿背包if(i<=n) returnb;}五、算法題.N皇后回溯法boolQueen::Place(intk)// 檢查x[k]位置是否合法{for(intj=1;j<k;j++)if((abs(k-j)==abs(x[j]-x[k]))||(x[j]==x[k]))returnfalse;returntrue;}voidQueen二Backtrack(intt){if(t>n)sum++;elsefor(inti=1;i<=n;i++){x[t]=i;if( 約束函數(shù))Backtrack(t+1);}}.請(qǐng)寫出用回溯法解裝載問題的函數(shù)。裝載問題:有一批共n個(gè)集裝箱要裝上2艘載重量分別為c1和c2的輪船,其中集裝箱inwi<c1c2的重量為wi,且口 。裝載問題要求確定是否有一個(gè)合理的裝載方案可將這 n個(gè)集裝箱裝上這2艘輪船。如果有,找出一種裝載方案。voidbacktrack(inti)// 搜索第i層結(jié)點(diǎn){if(i>n)// 到達(dá)葉結(jié)點(diǎn)if(cw>bestw)// 更新最優(yōu)解bestx,bestw;return;{for(j=1;j<=n;j++)bestx[j]=x[j];Bestw=cw;}r-=w[i];if(cw+w[i]<=c)//搜索左子樹{x[i]=1;cw+=w[i];backtrack(i+1);cw-=w[i];}if(cw+r>bestw)// 搜索右子樹{x[i]=0; backtrack(i+1);}r+=w[i];}算法練習(xí)題一分支限界法一、選擇題40、常見的兩種分支限界法為( )A.廣度優(yōu)先分支限界法與深度優(yōu)先分支限界法;B.隊(duì)列式(FIFO)分支限界法與堆棧式分支限界法;C.排列樹法與子集樹法;D.隊(duì)列式(FIFO)分支限界法與優(yōu)先隊(duì)列式分支限界法;41、分支限界法在問題的解空間樹中,按( )策略,從根結(jié)點(diǎn)出發(fā)搜索解空間樹A.廣度優(yōu)先 B. 活結(jié)點(diǎn)優(yōu)先 C. 擴(kuò)展結(jié)點(diǎn)優(yōu)先 D. 深度優(yōu)先TOC\o"1-5"\h\z42、下面不是分支界限法搜索方式的是( )0A、廣度優(yōu)先 R最小耗費(fèi)優(yōu)先 C、最大效益優(yōu)先 D深度優(yōu)先43、分支限界法解旅行售貨員問題時(shí),活結(jié)點(diǎn)表的組織形式是( )0A、最小堆 R最大堆 C、棧 D數(shù)組44、優(yōu)先隊(duì)列式分支限界
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二四人力資源培訓(xùn)與招聘加盟合同正規(guī)范本3篇
- 2025年度5G通信網(wǎng)絡(luò)建設(shè)施工合同范本6篇
- 2024蔬菜種植保險(xiǎn)采購合同范本2篇
- 2024簡(jiǎn)單的購房合同范本
- 2025年度彩鋼瓦屋頂安全性能評(píng)估與整改合同3篇
- 2025年度財(cái)務(wù)數(shù)據(jù)保密合規(guī)性審查合同范本3篇
- 2025年度離婚案件訴訟策略與執(zhí)行服務(wù)合同3篇
- 二零二五壁畫藝術(shù)教育合作合同3篇
- 二零二四年度「風(fēng)力發(fā)電設(shè)備維修」合同
- 二零二五年版10千伏電力施工合同范本正規(guī)范修訂版發(fā)布6篇
- 廣東省佛山市2025屆高三高中教學(xué)質(zhì)量檢測(cè) (一)化學(xué)試題(含答案)
- 《國有控股上市公司高管薪酬的管控研究》
- 餐飲業(yè)環(huán)境保護(hù)管理方案
- 人教版【初中數(shù)學(xué)】知識(shí)點(diǎn)總結(jié)-全面+九年級(jí)上冊(cè)數(shù)學(xué)全冊(cè)教案
- 食品安全分享
- 礦山機(jī)械設(shè)備安全管理制度
- 計(jì)算機(jī)等級(jí)考試二級(jí)WPS Office高級(jí)應(yīng)用與設(shè)計(jì)試題及答案指導(dǎo)(2025年)
- 造價(jià)框架協(xié)議合同范例
- 糖尿病肢端壞疽
- 心衰患者的個(gè)案護(hù)理
- 醫(yī)護(hù)人員禮儀培訓(xùn)
評(píng)論
0/150
提交評(píng)論