A.快速排序
B.合并排序
C.起泡排序
D.選擇排序
您可能感興趣的試卷
你可能感興趣的試題
A.最壞時間復(fù)雜度發(fā)生在在每次劃分,兩個子問題都成比例的情況,復(fù)雜度是O(n)
B.最好時間復(fù)雜度發(fā)生在每次劃分,兩個子問題都成比例的情況,復(fù)雜度是O(n logn)
C.最好時間復(fù)雜度發(fā)生在每次劃分,基準(zhǔn)元素是第一個且是最小元素,復(fù)雜度是O(n logn)
D.平均時間復(fù)雜度:O(logn)
A.O(n2)
B.O(logn)
C.O(n logn)
D.O(n!)
A.動態(tài)規(guī)劃
B.分治
C.回溯
D.貪心
設(shè)a,b,c是3個塔座。開始時,在塔座a上有一疊共n個圓盤,這些圓盤自下而上,由大到小地疊在一起。各圓盤從小到大編號為1,2,...,n,現(xiàn)要求將塔座a上的這一疊圓盤移到塔座c
上。下面的程序用于求解Hanoi塔問題,應(yīng)該寫入()。
void hanoi(in tn,int a,in tb,intc)
{
if(n==1){
cout< < “移動圓盤”<
else
{hanoi(n-1,a,c,b);
cout< < "移動圓盤"<
A.hanoi(n-1,a,c,b)
B.hanoi(n-1,b,c,a)
C.hanoi(n-1,b,a,c)
D.hanoi(n-1,a,b,c)
Hanoi塔問題的求解算法如下,其時間復(fù)雜度為()。
void hanoi(in tn,int a,in tb,intc)
{
if(n==1){
cout< < “移動圓盤”
else
三
{hanoi(n-1,a,c,b)
cout< < "移動圓盤"<
hanoi(n-1,b,a,c);
A.O(n)
B.O(logn)
C.O(nlogn)
D.O(2n)
最新試題
根據(jù)活結(jié)點表的組織方式不同,分支限界法包括()等形式。
在對Dijkstra算法進(jìn)行初始化時,如果兩個頂點之間沒有邊,則它們之間的距離為()。
在一個至少包含三個頂點的加權(quán)連通單向圖中,假定邊的權(quán)重互不相同,則權(quán)重最大的邊不可能被包含在任何最小生成樹中。
舍伍德算法思想是通過引入隨機(jī)化策略將確定性算法改造為隨機(jī)算法,打破原來確定性算法在某些實例情況下,其時間復(fù)雜性必然遠(yuǎn)高于平均時間復(fù)雜性的規(guī)律。下面哪些算法可以應(yīng)用舍伍德算法思想?()
?在分治法中講到快速排序,如果每次使用partion函數(shù)導(dǎo)致分組出現(xiàn)嚴(yán)重不平衡情況下,算法效率不高,最壞情況下的時間復(fù)雜度為O(n2),通過改造partition函數(shù),也就是每次隨機(jī)選擇一個元素作為劃分基準(zhǔn),這樣會很好地改善算法的性能,這種算法思想是()。
在隊列式分支限界法解決裝載問題時,為什么在其改進(jìn)算法中,每次進(jìn)入左分支都要檢查更新bestw,而不是等搜索到達(dá)葉子結(jié)點時才去更新bestw,其目的是什么?()
在解決活動安排問題時應(yīng)首先對活動進(jìn)行排序,排序的依據(jù)是()。
有一個問題的蒙特卡洛算法,給定一個實例,已知運行一次其答案是錯誤的概率是1/8,現(xiàn)運行k次該算法,其答案一直不變,問該答案的正確率是()。
應(yīng)用分支限界法的三個關(guān)鍵問題包括()。
下列關(guān)于效率的說法正確的是()。