下面的程序用于實(shí)現(xiàn)數(shù)字序列的全排序,應(yīng)該寫入()。
template
void Perm(Type list[],in tk,in tm){
if(k==m){
for(inti=0;i< =m;i++){
cout<
}else{
for(inti=k;i< =m;i++){
Swap(list[k],list[])
Swap(list[k],list[i]);
A.Perm(list,m,k+1)
B.Perm(list,m,k)
C.Perm(list,k+1,m)
D.Perm(list,k,m)
您可能感興趣的試卷
你可能感興趣的試題
A.快速排序
B.合并排序
C.起泡排序
D.選擇排序
A.最壞時(shí)間復(fù)雜度發(fā)生在在每次劃分,兩個(gè)子問題都成比例的情況,復(fù)雜度是O(n)
B.最好時(shí)間復(fù)雜度發(fā)生在每次劃分,兩個(gè)子問題都成比例的情況,復(fù)雜度是O(n logn)
C.最好時(shí)間復(fù)雜度發(fā)生在每次劃分,基準(zhǔn)元素是第一個(gè)且是最小元素,復(fù)雜度是O(n logn)
D.平均時(shí)間復(fù)雜度:O(logn)
A.O(n2)
B.O(logn)
C.O(n logn)
D.O(n!)
A.動(dòng)態(tài)規(guī)劃
B.分治
C.回溯
D.貪心
設(shè)a,b,c是3個(gè)塔座。開始時(shí),在塔座a上有一疊共n個(gè)圓盤,這些圓盤自下而上,由大到小地疊在一起。各圓盤從小到大編號為1,2,...,n,現(xiàn)要求將塔座a上的這一疊圓盤移到塔座c
上。下面的程序用于求解Hanoi塔問題,應(yīng)該寫入()。
void hanoi(in tn,int a,in tb,intc)
{
if(n==1){
cout< < “移動(dòng)圓盤”<
else
{hanoi(n-1,a,c,b);
cout< < "移動(dòng)圓盤"<
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)
最新試題
在使用分治法設(shè)計(jì)算法時(shí),最好使子問題的規(guī)模大致相同,即將一個(gè)問題分成大小相等的多個(gè)子問題的處理方法是行之有效的。
有一個(gè)問題的蒙特卡洛算法,給定一個(gè)實(shí)例,已知運(yùn)行一次其答案是錯(cuò)誤的概率是1/8,現(xiàn)運(yùn)行k次該算法,其答案一直不變,問該答案的正確率是()。
?優(yōu)先隊(duì)列式分支限界法解決0-1背包問題時(shí),下面描述正確的是()。
舍伍德算法思想是通過引入隨機(jī)化策略將確定性算法改造為隨機(jī)算法,打破原來確定性算法在某些實(shí)例情況下,其時(shí)間復(fù)雜性必然遠(yuǎn)高于平均時(shí)間復(fù)雜性的規(guī)律。下面哪些算法可以應(yīng)用舍伍德算法思想?()
將長度分別為m,n的兩個(gè)單鏈表合并為一個(gè)單鏈表的時(shí)間復(fù)雜度為O(m+n)。
在對Dijkstra算法進(jìn)行初始化時(shí),如果兩個(gè)頂點(diǎn)之間沒有邊,則它們之間的距離為()。
回溯法的主要用途包括求問題的所有解、求問題的最優(yōu)解和求問題的任一解。
回溯法采用的搜索策略是()。
?有這樣一種算法,運(yùn)行一次可能找不到問題的解,運(yùn)行多次就一定能找到問題的解,且運(yùn)行次數(shù)有界,這種算法是()。
在隊(duì)列式分支限界法解決裝載問題時(shí),為什么在其改進(jìn)算法中,每次進(jìn)入左分支都要檢查更新bestw,而不是等搜索到達(dá)葉子結(jié)點(diǎn)時(shí)才去更新bestw,其目的是什么?()