自己搜的算法题2.0
1、二分搜索算法是利用(A )實(shí)現(xiàn)的算法。
A、分治策略B、動態(tài)規(guī)劃法 C、貪心法 D、回溯法
2、下列不是動態(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、動態(tài)規(guī)劃法 C、貪心法 D、回溯法
4、在下列算法中有時找不到問題解的是(B )。
A、蒙特卡羅算法 B、拉斯維加斯算法C、舍伍德算法 D、數(shù)值概率算法
5、下列算法中不能解決0/1背包問題的是(A)
A貪心法B動態(tài)規(guī)劃C回溯法D分支限界法
6、回溯法搜索狀態(tài)空間樹是按照(C)的順序。
A中序遍歷B廣度優(yōu)先遍歷C深度優(yōu)先遍歷D層次優(yōu)先遍歷
7、下列隨機(jī)算法中運(yùn)行時有時候成功有時候失敗的是(C)
A數(shù)值概率算法B舍伍德算法C拉斯維加斯算法D蒙特卡羅算法
8、實(shí)現(xiàn)合并排序利用的算法是(A )。
A、分治策略 B、動態(tài)規(guī)劃法 C、貪心法 D、回溯法、
9、算法分析的目的是(D)
A、找出數(shù)據(jù)結(jié)構(gòu)的合理性B、找出算法中輸入和輸出之間的關(guān)系 C、分析算法的易懂性和可靠性 D、分析算法的效率以求改進(jìn)
10、如果按index訪問item并就地插入或刪除數(shù)據(jù),這種操作比較頻繁,那使用什么結(jié)構(gòu)最節(jié)省時間?
A、數(shù)組 B、雙向鏈表 C、單獨(dú)存儲 head 指針的雙向鏈表 D、鏈表
二、填空題(每空2分,共30分)
1、算法是指解決問題的(一種方法)或(一個過程)。
2、從分治法的一般設(shè)計模式可以看出,用它設(shè)計出的程序一般是(遞歸算法)。
3、問題的(最優(yōu)子結(jié)構(gòu)性質(zhì)),是該問題可用動態(tài)規(guī)劃算法或貪心算法求解的
關(guān)鍵特征。
4、以深度優(yōu)先方式系統(tǒng)搜索問題解的算法稱為(回溯法)。
5、數(shù)值概率算法常用于(數(shù)值問題)的求解。
6、一個算法的優(yōu)劣可以用(空間復(fù)雜度)和(時間復(fù)雜度)?來衡量。
7、直接或間接調(diào)用直接的方法稱之為(遞歸技術(shù))。
9貪心算法從初始階段開始,每一個階段總是作一個使(局部最優(yōu))的貪
心選擇。
另一個試卷
2、單項選擇題(本大題共30分,共 15 小題,母小題2分)
1.算法分析的兩個主要方面是(??A )。
A.空間復(fù)雜度和時間復(fù)雜度
B.正確性和簡單性
C.可讀性和文檔性
D.數(shù)據(jù)復(fù)雜度和程序復(fù)雜度
2.計算機(jī)算法指的是?(??C ?)。
A.算方法
?B.排方法
C.解決問題的方法和過程
D.調(diào)度方法
3.多階段決策問題,就是要在可以選擇的那些策略中間,選取一個(??A)??策略、使在預(yù)定的標(biāo)準(zhǔn)下達(dá)到最好的效果。 A.最優(yōu) B.最差 C. 平衡 D. 任意
4.根據(jù)排序元素所在位置的不同,排序分(???A?)。
A.內(nèi)排序和外排序
B.首排序和尾排序
C.逆排
D.堆排序和棧排序
5.算法必須具備輸入、輸出和(??B )等5個特性。
A.可執(zhí)行性、可移植性和可擴(kuò)充性
B.可行性、確定性和有窮性
C.確定性、有窮性和穩(wěn)定性
D.易讀性、穩(wěn)定性和安全性
D.經(jīng)分解得到子問題往往是任意的
?A.x<a[n/2]
A.回溯法
B.分支限界法
C.回溯法和分支限界法
D.回溯法求解子集樹問題
10.適用動態(tài)規(guī)劃的問題必須滿足( D???)
A.優(yōu)化原理
B.無前效性
C.優(yōu)化理和后效
D.最優(yōu)化原理和無后效性
11.算法的每種運(yùn)算必須要有確切的定義,不能有二義性,以下符合算法確定性運(yùn)算的是( B) A.5/0
B.將6或7與x相加
C.未賦值量參與運(yùn)算
D.f(n)=f(n-1)+2,F(1)=10,n為自然數(shù)
12.直接或間接的調(diào)用自身的算法稱為(B )。
A.貪心算法
B.遞歸算法
C.迭代算法
D.動態(tài)規(guī)劃算法
13. 二分查找只適用(B?)存儲結(jié)構(gòu)。
A.堆
B. 順序 C.任意順序
D. 棧
14.實(shí)現(xiàn)快速排序算法如下:
?
A.quickSort(p,q-1) B.quickSort(p+1q-1) C.quickSort(p,q+1) D.quickSort(p,q-2)
15.應(yīng)用分治法的兩個前提是(??A)。 A.問題的可分性和解的可歸并性 B.問題的可分性和解的存在性
C.問題的復(fù)雜性和解的可歸并性 D.問題的可分性和解的復(fù)雜性
二、判斷題(本大題共 70分,共 20 小題,每小題 3.5 分)
1.算法就是一組有窮的規(guī)則?(??√ )
2.概率算法中蒙特卡羅算法得到的解必是正確的?(??x ?)
3.程序和算法一樣,都是某種程序設(shè)計語言的具體實(shí)現(xiàn)。(??x ?)
4.合并排序算法是漸近最優(yōu)算法????(??√ ??)
5.遞歸定義必須是有確切含義是指必須一步比一步簡單,最后是有終結(jié)的,決不能無限循環(huán)下去(??√ ?)
6.二分搜索方法在最壞的情況下用0(logn)時間完成搜索任務(wù)。(??√ )
7.能否利用分治法完全取決于問題是否具有如下特征:利用該問題分解出的子問題的解可以合并為該問題的解。(???√ )
8.分治法的基本思想是將一個規(guī)模較大的問題分解成若干個規(guī)模較小的子問題,這些子問題之間并不一定相互獨(dú)立(??x ?)
9.遞歸算法的效率往往很低,費(fèi)時和費(fèi)內(nèi)存空間(?√ )
10.當(dāng)一個問題具有最優(yōu)子結(jié)構(gòu)性質(zhì)時只能用動態(tài)規(guī)劃方法求解。(??x )
11.如果一類活動過程一個階段的決策確定以后,常影響到下一個階段的決策,則稱它為多階段決策問題。????(???√ )
12.反復(fù)應(yīng)用分治手段,不能使子問題與原問題類型一致而其規(guī)模卻不斷縮小?(???√ ?)?
13.裴波那契數(shù)列的定義:f(n)=f(n-1)+f(n-2),f(0)=1f(1)=2,其數(shù)據(jù)的定義形式不是按遞歸定義。(???x ??)
14?0-1背包問題與背包問題這兩類問題都可以用貪心算法求解。(??x ?)
15.證明貪心選擇后的問題簡化為規(guī)模更小的類似子問題的關(guān)鍵在于利用該問題的最優(yōu)子結(jié)構(gòu)性質(zhì)。(??x )
16.子問題之間不包含公共的子問題,這個條件涉及到分治法的效率()17.概率算法允許在執(zhí)行過程中隨機(jī)地選擇下一個計算步驟?(??√ ?)
18,二分搜索法的二分查找只適用于順序存儲結(jié)構(gòu)。 (?√ )
19.要想在電腦上擴(kuò)大所處理問題的規(guī)模,有效的途徑是降低算法的計算復(fù)雜度(?√ )
20.用回溯法解題一個顯著特征是在搜索過程中動態(tài)產(chǎn)生問題的解空間(??√ )
2011年12月考試算法設(shè)計分析第二次作業(yè)
一、單項選擇題(本大題共30分,共15 小題,每小題2 分)
1.優(yōu)先隊列的分支限界法將活結(jié)點(diǎn)表組織成一個優(yōu)先隊列,并按優(yōu)先隊列中規(guī)定的結(jié)點(diǎn)優(yōu)先級選取優(yōu)先級最高的下一個結(jié)點(diǎn)成為當(dāng)前擴(kuò)展結(jié)點(diǎn)。優(yōu)先隊列中規(guī)定的結(jié)點(diǎn)優(yōu)先級常用一個與該結(jié)點(diǎn)相關(guān)的數(shù)值p來表示。結(jié)點(diǎn)優(yōu)先級的高低與p值大小相關(guān),根據(jù)問題的不同情況,采用(???C ??)來描述優(yōu)先隊列。
?A.先進(jìn)先出隊列
B.后進(jìn)先出的棧
C.最大堆或最小堆
D.隨機(jī)序列
2.階乘函數(shù)用遞歸定義 Public static int factorial(intn)
{if(n==O)
return 1;
?return ();
} ??B
An*factorial(n) B.n*factorial(n-1) C.n*factorial(n-2) D.n*factorial(n+1)
3.(??B ?)能夠求得問題的解,但卻無法有效地判定解的正確性
A.數(shù)值概率算法 B.蒙特卡羅算法 C.拉斯維加斯算法 D全伍得算法
4.對于n個元素的排序問題。n=2時,只要作(???C ?)次比較即可排好序
A. 3
B. 2
C.1
?D. 4
5,一般地講,當(dāng)一個問題的所有子問題都至少要解一次時,用動態(tài)規(guī)劃算法和備忘錄算法相比: (???B ??)
A.效果一樣動態(tài)規(guī)劃效果好
B.備忘錄方法效果好
C.無法判斷 D.哪個效果好
6分支限界法與回溯法都是在問題的解空間樹T上搜索問題的解,二者( ?B ??)
D.求解目標(biāo)相同,搜索方式也相同
A.數(shù)據(jù)的定義形式按遞歸定義
B.數(shù)據(jù)之間的關(guān)系(即數(shù)據(jù)結(jié)構(gòu))按遞歸定義
C.問題解法按遞歸算法實(shí)現(xiàn)
D,概率問題
8.當(dāng)子問題之間包含公共的子子問題則分治法要做許多不必要的工作,重復(fù)地解公共的子問題,此時一般用(??A ?)法較好
A.動態(tài)規(guī)劃?
B.分治
C.貪心
D. 概率
9.分治法所能解決的問題應(yīng)具有的關(guān)鍵特征是( ??C ?)。
A.該問題的規(guī)模縮小到一定的程度就可以容易地解決
B。該問題可以分解為若干個規(guī)模較小的相同問題
C.用該問題分解出的子問題的解可以合并為該問題的解
?D.該問題所分解出的各個子問題是相互獨(dú)立的
10.對于貨箱裝船問題,根據(jù)貪心策略,首先選擇( ?A ?)的貨箱,然后選 ()的貨箱,如此下去直到所有貨箱均裝上船或船上不能再容納其他任何一個貨箱
A.最輕次輕
B.最重次重
C.最輕重
D.最重次輕
11.用回溯法解n后問題時,用完全n叉樹表示解空間。可行性約束place剪去不滿足行、列和斜線約束的子樹,place的if判斷條件應(yīng)為( ?A ?)
?A.(Math.abs(k-j)==Math.abs(x[j]-x[k]))(x[j]==x[k])
B.(Math.abs(k-j)==Math.abs(x[j]-x[k])
?C.(x[j]==x[k]) D,以上都不正確
12.分支限界法的搜索策略是:在擴(kuò)展結(jié)點(diǎn)處,先生成其(???D )兒子結(jié)點(diǎn)(分支),然后再從當(dāng)前的活結(jié)點(diǎn)表中選擇下一個擴(kuò)展對點(diǎn)。為了有效地選擇下一擴(kuò)展結(jié)點(diǎn),以加速搜索的進(jìn)程,在每一活結(jié)點(diǎn)處,計算一個函數(shù)值(限界),并根據(jù)這些已計算出的函數(shù)值,從當(dāng)前活結(jié)點(diǎn)表中選擇一個最有利的結(jié)點(diǎn)作為擴(kuò)展結(jié)點(diǎn),使搜索朝著解空間樹上有最優(yōu)解的分支推進(jìn),以便盡快地找出一個最優(yōu)解。
A.一個 B.二個
C.任意多個 D. 所有的
13.能夠用動態(tài)規(guī)劃解決的問題還有一個顯著特征(??D ?)這個性質(zhì)并不是動態(tài)規(guī)劃適用的必要條件,但是如果該性質(zhì)無法滿足,動態(tài)規(guī)劃算法同其他算法相比就不具備優(yōu)勢。
A.子問題的可求解性
B.子問題的獨(dú)立性
C.子問題的可合并性
D.子問題的重疊性
?A
A.0(n) B.0(n!) C. 0(n) D. O(n')
二、判斷題(本大題共 70分,共 20小題,每小題35 分)
1.從分治法的一般設(shè)計模式可以看出,用它設(shè)計出的程序一般是一個遞歸過程。因此,分治法的計算效率通常可以用遞歸方程來進(jìn)行分析。( ?√ ?)
2.多階段決策問題中,每一個階段可能有若干個決策可供選擇(??√ ?)
3.拉斯維加斯算法不會得到不正確的解,但有時找不到解。 (??√ ?)
4.在通往邊界條件的遞歸調(diào)用過程中,系統(tǒng)用堆棧保存的每次調(diào)用的中間結(jié)果是局部變量和返回地址值。(????√ ???)
5.要想在電腦上擴(kuò)大所處理問題的規(guī)模,有效的途徑是提高算法的計算復(fù)雜度。(??x ?)
6.程序必須滿足算法具有數(shù)據(jù)輸出的性質(zhì)(??√ ?)
7.反復(fù)應(yīng)用分治手段,可以使子問題與原問題類型一致而其規(guī)模卻不斷縮小(??√ )
8.一個算法產(chǎn)生一個或多個輸出,它們是同輸入有某種特定關(guān)系的量(??√ ?)
9.最優(yōu)子結(jié)構(gòu)性質(zhì)特征反映了遞歸思想的應(yīng)用()10.遞歸邊界本身并不使用遞歸的定義(??√ )
12.用回溯法解問題時,首先應(yīng)明確定義問題的解空間。問題的解空間應(yīng)到少包含問題的一個(最優(yōu))解。(??√ ?)
13.好的約束函數(shù)能顯著地減少所生成的結(jié)點(diǎn)數(shù),但這樣的約束函數(shù)往往計算量較大。因此,在選擇約束函數(shù)時通常存在生成結(jié)點(diǎn)數(shù)與約束函數(shù)計算量之間的折衷。??√
15.最優(yōu)子結(jié)構(gòu)性質(zhì)是應(yīng)用分治法的前提(?√ ?)
17,有些數(shù)據(jù)結(jié)構(gòu)如二叉樹等,由于其本身的遞歸特性、特別適合用遞歸的形式來描述。(?√ )
18.概率算法的一個基本特征是,對所求問題的同一個實(shí)例用同一個算法求解兩次一定能得到完全相同的效果。(??x)
19.問題可以分解為若干個規(guī)模較小的相同問題,即稱該問題具有最優(yōu)子結(jié)構(gòu)性質(zhì)(??x ?)
20.遞推是從內(nèi)邊界條件出發(fā),通過遞推式達(dá)到邊界條件。(?√ )
2011年12月考試算法設(shè)計分析第三次作業(yè)
一、填空題(本大題共30分,共5小題,每小題6分)
1.分支限界法的求解目標(biāo) 是???(找出滿足約束條件的一個解)
2.貪心算法和(動態(tài)規(guī)劃)算法都要求問題具有最優(yōu)子結(jié)構(gòu)性質(zhì)。
3.動態(tài)規(guī)劃法所針對的問題有一個顯著的特征,即它所對應(yīng)的子問題樹中的子問題呈現(xiàn)(大量的重復(fù)) 。
5.動態(tài)規(guī)劃是一種將問題實(shí)例分解為更小的、相似的子問題,并存儲子問題的解而避免計算重復(fù)的子問題,以解決(最優(yōu)化問題)的算法策略。
二、改錯題(本大題共30分,共5小題,每小題6分)
1.好的約束函數(shù)能顯著地減少所生成的結(jié)點(diǎn)數(shù),但這樣的約束函數(shù)往往計算量較大。(??對)
2.能夠用動態(tài)規(guī)劃解決的問題有一個顯著特征:子問題的重疊性。(???對)
3.與分治法不同的是,適合于用動態(tài)規(guī)劃求解的問題經(jīng)分解得到子問題往往是互相不獨(dú)立的(???錯)??解析: 往往相互獨(dú)立
4.分限界法不僅通過約束條件,而且可通過目標(biāo)函數(shù)的限界來減少無效搜索(??對)
5.貪心算法所做的選擇都是目前最佳的(??對)
?
4、漸進(jìn)算法分析是指?B
(A)算法在最佳情況、最差情況和平均情況下的代價
(B)當(dāng)規(guī)模逐步往極限方向增大時,對算法資源開銷“增長率”上的簡化分析
(C)數(shù)據(jù)結(jié)構(gòu)所占用的空間
(D)在最小輸入規(guī)模下算法的資源代價
?
6、采用“順序搜索法”從一個長度為N的隨機(jī)分布數(shù)組中搜尋值為K的元素。以下對順序搜索法分析正確的是。???B
(A)最佳情況、最差情況和平均情況下,順序搜索法的漸進(jìn)代價都相同
(B)最佳情況的漸進(jìn)代價要好于最差情況和平均情況的漸進(jìn)代價
(C)最佳情況和平均情況的漸進(jìn)代價要好于最差情況的漸進(jìn)代價
(D)最佳情況的漸進(jìn)代價要好于平均情況的漸進(jìn)代價,而平均情況的漸進(jìn)代價要好于最差情況的漸進(jìn)代價
7、遞歸通常用來實(shí)現(xiàn)。??C
(A)有序的線性表 (B)隊列 (C)棧 (D)數(shù)組
8、分治法的設(shè)計思想是將一個難以直接解決的大問題分割成規(guī)模較小的子問題,分別解決子問題,最后將子問題的解組合起來形成原問題的解。這要求原問題和子問題。??C
(A)問題規(guī)模相同,問題性質(zhì)相同
(B)問題規(guī)模相同,問題性質(zhì)不同
(C)問題規(guī)模不同,問題性質(zhì)相同
(D)問題規(guī)模不同,問題性質(zhì)不同
9、在尋找n個元素中第k小元素問題中,如快速排序算法思想,運(yùn)用分治算法對n個元素進(jìn)行劃分,如何選擇劃分基準(zhǔn)?下面 答案解釋最合理。??D
(A)隨機(jī)選擇一個元素作為劃分基準(zhǔn)?
(B)取子序列的第一個元素作為劃分基準(zhǔn)
(C)用中位數(shù)的中位數(shù)方法尋找劃分基準(zhǔn)
(D)以上皆可行。但不同方法,算法復(fù)雜度上界可能不同
(A)0-1背包問題和背包問題都可用貪心算法求解???
(B)0-1背包問題可用貪心算法求解,但背包問題則不能用貪心算法求解
(C)0-1背包問題不能用貪心算法求解,但可以使用動態(tài)規(guī)劃或搜索算法求解,而背包問題則可以用貪心算法求解
(D)因為0-1背包問題不具有最優(yōu)子結(jié)構(gòu)性質(zhì),所以不能用含心算法求解
11、關(guān)于回溯搜索法的介紹,下面是不正確描述。??D
(A)回溯法有“通用解題法”之稱,它可以系統(tǒng)地搜索一個問題的所有解或任意解
(B)回溯法是一種既帶系統(tǒng)性又帶有跳躍性的搜索算法
(C)回溯算法在生成解空間的任一結(jié)點(diǎn)時,先判斷該結(jié)點(diǎn)是否可能包含問題的解,如果肯定不包含,則跳過對該結(jié)點(diǎn)為根的子樹的搜索,逐層向祖先結(jié)點(diǎn)回溯
(D)回溯算法需要借助隊列這種結(jié)構(gòu)來保存從根結(jié)點(diǎn)到當(dāng)前擴(kuò)展結(jié)點(diǎn)的路徑
12、關(guān)于回溯算法和分支限界法,以下 是不正確描述。??A
(A)回溯法中,每個活結(jié)點(diǎn)只有一次機(jī)會成為擴(kuò)展結(jié)點(diǎn)
(B)分支限界法中,活結(jié)點(diǎn)一旦成為擴(kuò)展結(jié)點(diǎn),就一次性產(chǎn)生其所有兒子結(jié)點(diǎn),在這些兒子結(jié)點(diǎn)中,那些導(dǎo)致不可行解或?qū)е路亲顑?yōu)解的兒子結(jié)點(diǎn)被舍棄,其余兒子加入活結(jié)點(diǎn)表中
(C)回溯法采用深度優(yōu)先的結(jié)點(diǎn)生成策略
(D)分支限界法采用廣度優(yōu)先或最小耗費(fèi)優(yōu)先(最大效益優(yōu)先)的結(jié)點(diǎn)生成策略
(A)棧(B)堆(C)隊列
(D)二叉查找樹
14、在分支限界算法中,根據(jù)從活結(jié)點(diǎn)表中選擇下一擴(kuò)展結(jié)點(diǎn)的不同方式可有幾種常用分類,以下描述最為準(zhǔn)確???D
(A)采用FIFO隊列的隊列式分支限界法
(B)采用最小值堆的優(yōu)先隊列式分支限界法
(C)采用最大值堆的優(yōu)先隊列式分支限界法
(D)以上都常用,針對具體問題可以選擇采用其中某種更為合適的方式
15、對布線問題,以下是不正確描述???C
(A)布線問題的解空間是一個終?
(B)可以對方格陣列四周設(shè)置圍墻,即增設(shè)標(biāo)記的附加方格的預(yù)處理,使得算法簡化對邊界的判定
(C)采用廣度優(yōu)先的標(biāo)號法找到從起點(diǎn)到終點(diǎn)的布線方案(這個方案如果存在的話)不一定是最短的
(D)采用先入先出的隊列作為活結(jié)點(diǎn)表,以終點(diǎn)b為擴(kuò)展結(jié)點(diǎn)或活結(jié)點(diǎn)隊列為空作為算法結(jié)束條件
二、填空題(20分,每空2分)
2、一個直接或間接調(diào)用自身的算法稱為_?遞歸_算法。
出自于“平衡子問題”的思想,通常分治法在分割原問題,形成若干子問題時,這些子問題的規(guī)模都大致( ?相等) 。
3、使用二分搜索算法在n個有序元素表中搜索一個特定元素,在最佳情況下,搜索的時間復(fù)雜性為O(???),在最壞情況下,搜索的時間復(fù)雜性為0(???)。
?
4、動態(tài)規(guī)劃算法的基本要素是?(最優(yōu)子結(jié)構(gòu)性質(zhì)) ?和(子問題重疊性質(zhì))
5、動態(tài)規(guī)劃算法有一個變形方法-( ?備忘錄方法 ?)。這種方法不同于動態(tài)規(guī)劃算法“自底向上”的填充方向,而是“自頂向下”的遞歸方向,為每個解過的子問題建立了備忘錄以備需要時查看,同樣也可避免相同子問題的重復(fù)求解。
6、貪心算法的基本要素是??(貪心選擇性質(zhì))?和最優(yōu)子結(jié)構(gòu)性質(zhì)。
?
?
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的自己搜的算法题2.0的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js 对象
- 下一篇: 【CF613D】Kingdom and