A.結構清晰
B.容易用數學歸納法證明算法的正確性
C.遞歸算法耗費的時間和占用的內存空間要比解決同一問題的非遞歸算法要少
D.可讀性強
您可能感興趣的試卷
你可能感興趣的試題
A.6
B.101
C.51
D.7
A.這是因為歸并排序把問題劃分為子問題時的時間復雜性是O(1),而快速排序劃分為子問題是使用partition()函數,其時間復雜性是O(n)
B.因為歸并排序把問題劃分為兩個子問題時其規(guī)模大致相等,是原來規(guī)模的n/2,而快速排序劃分為子問題是使用partition()函數,劃分為子問題時不能保證二個子問題的規(guī)模大致相同,在極端狀況下,每次都只劃分為1個子問題,其規(guī)模為原問題規(guī)模n-1,因此快速排序在極端狀況下的時間復雜性的遞歸定義為T(n)=T(n-1)+O(n)
C.因為快速排序將問題劃分為子問題的個數比歸并排序要多
D.歸并排序的分和合的時間復雜性之和低于快速排序的分和合的時間復雜性之和
A.不能,因為它不可以用分、治、合三個步驟完成計算
B.不能,因為它不滿足分治法的第四個適應條件(子問題是相互獨立的,也就是沒有重復子問題)
C.能,因為它滿足分治法的四個適應條件
D.能,因為它可以用分、治、合三個步驟完成計算
分治法的時間復雜性分析,通常是通過分析得到一個關于時間復雜性T(n)的一個遞歸方程,然后解此方程可得T(n)的結果。T(n)的遞歸定義如下:
關于該定義中k,n/m,f(n)的解釋準確的是()。
A.k是常系數,n/m是規(guī)模為n的問題分為m個子問題,f(n)是將子問題的解合并為問題的解的時間復雜性
B.k是子問題個數,n/m是子問題的規(guī)模,f(n)是分解為子問題的時間復雜性與合并子問題的解的時間復雜性之和
C.k是子問題個數,n/m是子問題的規(guī)模,f(n)是規(guī)模為n的問題分解為子問題的時間復雜性
D.k是常系數;n/m是規(guī)模為n的問題分為m個子問題;f(n)是分解為子問題的時間復雜性與合并子問題的解的時間復雜性之和
?分治法解決問題分為三步走,即分、治、合。下面列出了幾種操作,請按分、治、合順序選擇正確的表述()。
(1)將各個子問題的解合并為原問題的解
(2)將問題分解為各自獨立的多個子問題
(3)將多個子問題合并為原問題
(4)求各個子問題的解
(5)將問題分解為可重復的多個子問題
A.(2)(4)(1)
B.(2)(1)(3)
C.(5)(4)(1)
D.(5)(1)(3)
最新試題
使用窮舉法求解最長遞增子序列的時間復雜度為()。
在隊列式分支限界法解決裝載問題時,為什么在其改進算法中,每次進入左分支都要檢查更新bestw,而不是等搜索到達葉子結點時才去更新bestw,其目的是什么?()
下列關于貪心算法與動態(tài)規(guī)劃算法說法正確的是()。
下列關于效率的說法正確的是()。
關于使用回溯法求解0-1背包問題,以下說法正確的是()。
序列(1,7,3,4,9,2,3)的最長遞增子序列的長度為()。
在解決活動安排問題時應首先對活動進行排序,排序的依據是()。
在對Dijkstra算法進行初始化時,如果兩個頂點之間沒有邊,則它們之間的距離為()。
?有這樣一種算法,運行一次可能找不到問題的解,運行多次就一定能找到問題的解,且運行次數有界,這種算法是()。
?在分治法中講到快速排序,如果每次使用partion函數導致分組出現(xiàn)嚴重不平衡情況下,算法效率不高,最壞情況下的時間復雜度為O(n2),通過改造partition函數,也就是每次隨機選擇一個元素作為劃分基準,這樣會很好地改善算法的性能,這種算法思想是()。