單項(xiàng)選擇題?快速排序和歸并排序是常用的排序算法,也都是采用分治法解決的問題。快速排序的時間復(fù)雜性為O(n2),而歸并排序的時間復(fù)雜性為O(nlogn),究其原因,下面的解釋哪個正確?()

A.這是因?yàn)闅w并排序把問題劃分為子問題時的時間復(fù)雜性是O(1),而快速排序劃分為子問題是使用partition()函數(shù),其時間復(fù)雜性是O(n)
B.因?yàn)闅w并排序把問題劃分為兩個子問題時其規(guī)模大致相等,是原來規(guī)模的n/2,而快速排序劃分為子問題是使用partition()函數(shù),劃分為子問題時不能保證二個子問題的規(guī)模大致相同,在極端狀況下,每次都只劃分為1個子問題,其規(guī)模為原問題規(guī)模n-1,因此快速排序在極端狀況下的時間復(fù)雜性的遞歸定義為T(n)=T(n-1)+O(n)
C.因?yàn)榭焖倥判驅(qū)栴}劃分為子問題的個數(shù)比歸并排序要多
D.歸并排序的分和合的時間復(fù)雜性之和低于快速排序的分和合的時間復(fù)雜性之和


您可能感興趣的試卷

你可能感興趣的試題

1.單項(xiàng)選擇題?已知斐波那契數(shù)列中第n個斐波那契數(shù)F(n)=F(n-1)+F(n-2),問能不能使用分治策略求第n個斐波那契數(shù)()。

A.不能,因?yàn)樗豢梢杂梅?、治、合三個步驟完成計(jì)算
B.不能,因?yàn)樗粷M足分治法的第四個適應(yīng)條件(子問題是相互獨(dú)立的,也就是沒有重復(fù)子問題)
C.能,因?yàn)樗鼭M足分治法的四個適應(yīng)條件
D.能,因?yàn)樗梢杂梅?、治、合三個步驟完成計(jì)算

2.單項(xiàng)選擇題

分治法的時間復(fù)雜性分析,通常是通過分析得到一個關(guān)于時間復(fù)雜性T(n)的一個遞歸方程,然后解此方程可得T(n)的結(jié)果。T(n)的遞歸定義如下:

關(guān)于該定義中k,n/m,f(n)的解釋準(zhǔn)確的是()。

A.k是常系數(shù),n/m是規(guī)模為n的問題分為m個子問題,f(n)是將子問題的解合并為問題的解的時間復(fù)雜性
B.k是子問題個數(shù),n/m是子問題的規(guī)模,f(n)是分解為子問題的時間復(fù)雜性與合并子問題的解的時間復(fù)雜性之和
C.k是子問題個數(shù),n/m是子問題的規(guī)模,f(n)是規(guī)模為n的問題分解為子問題的時間復(fù)雜性
D.k是常系數(shù);n/m是規(guī)模為n的問題分為m個子問題;f(n)是分解為子問題的時間復(fù)雜性與合并子問題的解的時間復(fù)雜性之和

4.多項(xiàng)選擇題?關(guān)于算法的正確性,下面哪些說法是正確的?()

A.對于問題的一個實(shí)例,如果算法不能獲得正確的結(jié)果,就證明算法是不正確的
B.若算法是正確的,則對于問題的任何實(shí)例,算法都能得到正確的結(jié)果
C.對于問題的一個實(shí)例,如果算法能夠獲得正確的結(jié)果,就證明算法是正確的
D.若算法是正確的,則算法一定能結(jié)束(運(yùn)行時間是有限的)