單項(xiàng)選擇題
A.O(mn)B.O(mn2)C.O(m+n)D.O(m/n)
下面的偽碼最可能是用來(lái)求解哪個(gè)問(wèn)題的方案?()for i=1tomdofor j=1tondoif X[i]=Y[i{C[ij]=C[i-1,j-1]+1;B[i,]=(1)}elseif C[i-1,j]>=C[i,j-1]{C[i,j]=C[i-1,j];B[i,j]=(2)}else{C[ij]=C[i,j-1];B[ij]=(3)}
A.最優(yōu)二叉樹問(wèn)題B.最大字段和問(wèn)題C.最長(zhǎng)公共子序列問(wèn)題D.單源最短路徑問(wèn)題
A.每個(gè)子問(wèn)題只計(jì)算一次B.不需要考慮計(jì)算順序,只要求過(guò)的值都存儲(chǔ)在備忘錄里就可以C.迭代過(guò)程可以從最小的問(wèn)題開始D.設(shè)計(jì)標(biāo)記函數(shù)標(biāo)記每一步的決策
A.重疊子問(wèn)題B.最優(yōu)子結(jié)構(gòu)C.貪心選擇性質(zhì)D.定義最優(yōu)解
A.分治策略B.動(dòng)態(tài)規(guī)劃法C.貪心法D.回溯法
A.隨機(jī)算法B.遞歸算法C.概率統(tǒng)計(jì)D.猜測(cè)驗(yàn)證
A.該問(wèn)題的規(guī)??s小到一定的程度就可以容易地解決B.該問(wèn)題可以分解為若干個(gè)規(guī)模較小的相同問(wèn)題C.分解出的子問(wèn)題的解可以合并為原問(wèn)題的解D.分解出的各個(gè)子問(wèn)題是相互獨(dú)立的
下面算法的復(fù)雜度是()。for(inti=1;i< =n;i++){while(tmp){c[tmp%10]++;tmp/=10;
A.O(logn)B.O(n logn)C.O(n)D.O(n!)
A.T(n)=T(4n/3)B.T(n)=T(n/75)C.T(n)=T(n/5)D.T(n)=T(3n/4)
A.T(n)=T(n/5)B.T(n)=T(n*5)C.T(n)=T(n/2)D.T(n)=T(n*2)
下面的代碼是哪個(gè)算法的C++源碼?()//用某個(gè)簡(jiǎn)單排序算法對(duì)數(shù)組a[p:r]排序;}return a[p+k-1];};for(inti=0;i< =(r-p-4)/5;i++){//將a[p+5*i]至a[p+5*i+4]的第3小元素與a[p+i交換位置;}Type x=Select(a,p,p+(r-p-4)/5,(r-p-4)/10);//找中位數(shù)的中位數(shù)inti=Partition(a,p,r,x),j=i-p+1;if(k< =j)return Select(a,p,,k);else return Select(a,i+1,r,k-j);}
A.全排列問(wèn)題B.線性時(shí)間選擇C.快速排序D.合并排序