這是一個非常簡單的問題,但我很努力地完全理解這個概念。排序算法的上界和下界
我想了解以下語句之間的區別:
- 存在着這種種在最好的情況下n個數的O(n)的陣列的算法。
- 在最佳情況下,每種算法都會對O(n)中的n個數字進行排序。
- 在最佳情況下,存在一種算法,可以在歐米茄(n)中對n個數字進行排序。
- 在最佳情況下,每種算法都會對歐米茄(n)中的n個數字排序。
我會先解釋一下讓我發瘋的原因。我不確定關於1和3 - 但我知道其中一個答案是正確的,只需指定一個案例,而另一個答案是正確的,通過檢查所有可能的輸入。因此,我知道其中的一個必須是正確的,只需指定數組已被排序,但我無法分辨哪個數組已被排序。 我的老師總是讓我想想,就像我們正在研究誰是班上最高的人,又是由這些選項之一一樣(1,3),這足以說他是,而且沒有理由去檢查所有的班級。
我知道,如果我們要檢查最壞的情況,那麼這些陳述都不是真的,因爲沒有任何假設或額外內存的最佳排序算法是Omega(nlogn)
。
重要注意事項:我不是在尋找一種解決方案(一種能夠進行匹配排序的算法) - 只是試圖更好地理解這個概念。
謝謝!
由於某些原因,$對我不起作用。對於造成的不便,我們深表歉意 – SyndicatorBBB