簡體   English   中英

確定排序比較次數的公式?

[英]Formula for determining number of comparisons in a sort?

我很好奇是否有一個公式/規則可以找到在排序算法中完成的比較總數,特別是合並排序,選擇排序和插入排序。 我很確定選擇排序的規則是n(n-1)/2 ,其中n是要排序的元素數。 我認為插入排序也是如此,但是根據我進行的一次Java測試,顯然這是不正確的(根據答案鍵,插入排序有6個項目的列表進行了14次比較,對選擇項進行了15次比較)分類)。 所以現在我很困惑。

通常,由於以下兩個原因,沒有精確的公式:

  1. 在實現各種排序算法方面有足夠的變化空間,以至於同一算法的不同實現之間可能存在很小的差異。

  2. 對於某些算法,比較次數取決於元素及其初始順序。

當然,沒有一個“一刀切”的公式可以涵蓋(例如)同一復雜度類中的所有算法。


一個線索:如果排序算法的最佳情況或最壞情況復雜度與其平均復雜度不同,則比較次數或移動次數取決於輸入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM