[英]Formula for determining number of comparisons in a sort?
我很好奇是否有一個公式/規則可以找到在排序算法中完成的比較總數,特別是合並排序,選擇排序和插入排序。 我很確定選擇排序的規則是n(n-1)/2
,其中n是要排序的元素數。 我認為插入排序也是如此,但是根據我進行的一次Java測試,顯然這是不正確的(根據答案鍵,插入排序有6個項目的列表進行了14次比較,對選擇項進行了15次比較)分類)。 所以現在我很困惑。
通常,由於以下兩個原因,沒有精確的公式:
在實現各種排序算法方面有足夠的變化空間,以至於同一算法的不同實現之間可能存在很小的差異。
對於某些算法,比較次數取決於元素及其初始順序。
當然,沒有一個“一刀切”的公式可以涵蓋(例如)同一復雜度類中的所有算法。
一個線索:如果排序算法的最佳情況或最壞情況復雜度與其平均復雜度不同,則比較次數或移動次數取決於輸入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.