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

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


您可能感興趣的試卷

你可能感興趣的試題

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

A.不能,因為它不可以用分、治、合三個步驟完成計算
B.不能,因為它不滿足分治法的第四個適應(yīng)條件(子問題是相互獨立的,也就是沒有重復(fù)子問題)
C.能,因為它滿足分治法的四個適應(yīng)條件
D.能,因為它可以用分、治、合三個步驟完成計算

2.單項選擇題

分治法的時間復(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.多項選擇題?關(guān)于算法的正確性,下面哪些說法是正確的?()

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