在尋找第 k 小元素時,將原數(shù)組分為 5 個一組,分成3,4, 6,7 個一組可以嗎?
之前有童鞋問到這個問題,這里回答一下。
首先剔除偶數(shù)個,因為偶數(shù)不方便找中間元素,現(xiàn)在考察3和7是否可以?先看一下尋找第k小元素的復雜度(最差情況下)是由下式子(參考視頻“4.3分治尋找第k小元素”):

其中第1項是遞歸解決‘尋找中項的中項’的復雜度,第2項是對原問題劃分的左邊部分或者右邊部分進行遞歸的復雜度。
視頻“3.6 遞歸之幾種特殊形式的復雜度”指出對于這種形式的復雜度,取決于等式右邊第1項和第2項的系數(shù),如果這兩項系數(shù)之和小于1,則復雜度為\Theta(n),如果系數(shù)之和等于1,則復雜度為\Theta(n\log n)。當分成5個一組時,上式系數(shù)之和為1/5+3/4?< 1。所以復雜度為為\Theta(n)。

7個一組的類似分析,結論可以。
標簽: