假设CPU每秒可以处理10 ^ 8次操作。假设您必须使用10 ^ 6个元素对数组进行排序。以下哪项是正确的?
答案 0 :(得分:0)
插入排序的最坏情况复杂性是什么?
mergesort和quicksort的最坏情况复杂性是什么?
插入排序是否可能持续不到2.5小时?如果是的话,那是什么情况?
quicksort(或mergesort)的最佳案例复杂性是什么? 插入排序的最佳案例复杂性是什么?
如果你回答这些问题。你很容易回答你的问题。
如果你不知道最坏情况或最佳情况意味着什么,那么试着找到这些问题的答案。
如果排序需要10 ^ 12步,如果你的CPU每秒执行10 ^ 8步,它会在几秒(或几小时)内持续多长时间?
对快速排序,合并排序或插入排序的长度n
数组进行排序需要多少步骤?
回答上述所有问题后,您将更接近回答问题。 这样做,我向你保证,你将能够立即回答。
答案 1 :(得分:0)
插入排序&amp ;;的最坏情况复杂性快速排序是O(n ^ 2)。
合并排序的最坏情况复杂度为O(n * log(n))
因此,对于插入排序&快速排序步骤为(10^6)^2 = 10^12
所以需要10^12/10^8 = 10^4 or 10,000 seconds = 2.77hrs
(因为CPU运行10 ^ 8步/秒)
在哪里,没有。合并排序的步骤是(10^6*log(10^6)) = 6*10^6
步骤,(6*10^6/10^8) = 0.06secs
小于1
但是视情况可能是选项1或3可能是正确的,这里插入排序可能需要不到2.5小时,具体取决于问题,导致插入排序的平均情况复杂度为(N-1)*N/4
计算运行时间为它,我们得到0.69hrs
小于2.5小时,所以第3个陈述是正确的。