這裏有兩個問題,我得到了錯誤的答案,但我不知道爲什麼。關於coursera的開放課程中的堆的問題
1.假設您使用排序的數組(例如,從最大到最小)實現優先級隊列的功能。 Insert和Extract-Min的最壞情況運行時間分別是多少? (假設你有足夠大的數組來容納你所面對的插入)
我的答案是O(log(n))和O(1),因爲我們可以二進制搜索並插入O(log(n ))
extract-min很容易。
但正確的答案是O(n)和O(1)。
2.假設您使用未排序的數組實現優先級隊列的功能。 Insert和Extract-Min的最壞情況運行時間分別是多少? (假設你有一個足夠大的數組來容納你所面對的插入)
我的回答是O(1)和O(log(n)),因爲插入是任意的,並且extract-min我們可以先排序然後取最小值。
,但正確的答案是O(1)和O(n)的
誰能幫我解決這個問題?非常感謝。
哦,我明白了第二個問題,排序需要O(N *的log(n))不爲O(log(n))的