第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Quicksort:選擇樞軸

Quicksort:選擇樞軸

Quicksort:選擇樞軸實(shí)現(xiàn)Quicksort時,您需要做的一件事就是選擇一個數(shù)據(jù)透視表。但是當(dāng)我看下面的偽代碼時,我不知道應(yīng)該如何選擇樞軸。列表的第一個要素?別的什么? function quicksort(array)      var list less, greater      if length(array) ≤ 1            return array        select and remove a pivot value pivot from array      for each x in array          if x ≤ pivot then append x to less          else append x to greater      return concatenate(quicksort(less), pivot, quicksort(greater))有人可以幫助我掌握選擇樞軸的概念,以及不同的場景是否需要不同的策略。
查看完整描述

3 回答

?
楊魅力

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個贊

選擇隨機(jī)數(shù)據(jù)會最大限度地減少您遇到最壞情況O(n 2)性能的可能性(總是選擇第一個或最后一個會導(dǎo)致近似排序或接近反向排序的數(shù)據(jù)的最壞情況性能)。在大多數(shù)情況下,選擇中間元素也是可以接受的。

此外,如果您自己實(shí)現(xiàn)此功能,則有一些算法的版本可以就地工作(即不創(chuàng)建兩個新列表然后連接它們)。


查看完整回答
反對 回復(fù) 2019-07-30
?
慕斯709654

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個贊

嘿,我剛剛教過這堂課。

有幾種選擇。
簡單:選擇范圍的第一個或最后一個元素。(部分排序輸入不好)更好:選擇范圍中間的項(xiàng)目。(部分排序輸入更好)

但是,選擇任意元素會冒大規(guī)模將n數(shù)組分成兩個大小為1和n-1的數(shù)組的風(fēng)險。如果你經(jīng)常這樣做,你的快速排序可能會成為O(n ^ 2)。

我看到的一個改進(jìn)是選擇中位數(shù)(第一,最后,中期); 在最壞的情況下,它仍然可以轉(zhuǎn)到O(n ^ 2),但概率上,這是一種罕見的情況。

對于大多數(shù)數(shù)據(jù),選擇第一個或最后一個就足夠了。但是,如果您發(fā)現(xiàn)經(jīng)常遇到最壞情況(部分排序輸入),則第一個選擇是選擇中心值(對于部分排序的數(shù)據(jù),這是一個統(tǒng)計上很好的支點(diǎn))。

如果您仍然遇到問題,那么請走中間路線。


查看完整回答
反對 回復(fù) 2019-07-30
  • 3 回答
  • 0 關(guān)注
  • 723 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號