itslabtime.com

資訊 · 計算機 · 演算法探索

排序演算法與計算量

即使得到相同的排序結果,不同演算法所需的比較與資料移動也不同。需要區分操作次數與實際執行時間。

相關實驗:排序演算法比較 →
排序演算法比較
排序演算法比較實驗場景 →

意義與機制

排序是按照給定順序重新排列資料的過程。氣泡排序比較相鄰資料,歸併排序則將拆分後的列表合併。

演算法的迴圈結構決定輸入規模增大時工作量如何增長。即使資料規模相同,初始順序與實現中的停止條件也可能影響結果。

關係與條件

對於典型的氣泡排序,比較規模為 O(n²),而歸併排序的規模為 O(n log n)。需要注意的是,具體的比較次數和漸近表示法 O 並不相同。

該實驗並非一個基於統計價值比較、交換和寫入次數來衡量計算機實際時間的基準。它不會將資料寫入和位置交換視為相同的操作。

觀察實驗中需要注意的事物

比較的計數取決於大小、初始順序以及演算法。

我們計算值比較和交換,而不是經過的時間。合併寫入是獨立的。

關鍵關係與符號

bubble: n(n−1)/2 · merge: O(n log₂n)

符號及公式中使用的單位
符號含義單位
n輸入資料項的數量個
O(n log n)根據輸入規模的,漸近增長的上界表示式。複雜度

透過範例確認

合併寫操作和交換操作是否是相同的操作?

不同的運算·比較取決於大小、初始順序以及演算法。

常見誤解

  • 比較次數較少,並不意味著在所有計算機和輸入下,實際執行時間都會按同樣的比例縮短。

透過實驗探索這個概念

參考文獻

OpenStax ·《電腦科學導論》(英文)