2016-02-07 20 views
0

QuickSort算法對10.000.000個數字進行排序。運行時間爲5.3秒。我想知道如果有1,000,000,000個數字,什麼是運行時間。QuickSort的時間表現

大概需要681秒是合乎邏輯的嗎?

(這是一個假設性的問題,所以我們不依賴於計算機的RAM或CPU性能比較。)

+1

我懷疑這是一個很好的問題這裏的計算機科學論壇:http://cs.stackexchange.com – Baronz

回答

2

快速排序的運行時間,平均爲O(n log n)的。假設運行時對於某個常量c具有c n log n的形式。你知道,當n = 10,000,000運行時間爲5.3s,所以我們得到

10,000,000Ç登錄10,000,000 = 5.3s

10,000,000 C· 7 = 5.3s

C = 75.71ns

現在讓我們插上的N = 1,000,000,000:

C N日誌N =

75.71ns· 1,000,000,000·登錄十億

= 681.43s

所以,是的,你的估計是合理的。

0
+0

雖然這很有用,這是否直接回答這個問題? – templatetypedef

+0

我並不是說只是發佈鏈接,但表明這已經被問及回答,我認爲這是一個很好的問題,並且想分享問題帶到哪裏的鏈接。從@templatetypedef獲得實際的ANSWER也很有用,並且希望能夠得到所有的讚揚。我希望你的回答共享的關鍵是,這是一個非線性解決方案。 – Baronz