2016-02-07 23 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