2015-02-11 129 views
0

考慮一個插入在n個值上使用Sentinel排序,其中每個值在輸入中只出現兩次(所以n必須是偶數)。因此,比較的最佳情況輸入是元素已經排序並且最佳情況下的確切比較次數是n-1。我相信比較的最壞情況輸入是當元素被反向排序時。但在這種情況下,確切的比較次數是多少?爲什麼?特殊情況下插入排序的最壞情況比較

+0

你爲什麼不嘗試一些小例子,並拿出一個合理的假設? – 2015-02-11 15:05:18

+0

我相信它是(n + 2)(n-1)/ 2。不知道是否正確。 – rightDrop 2015-02-11 15:14:08

回答

0

對具有1個元素的數組進行排序。在索引插入到陣列

for(int i=1 ; i<n ; i++){ 
    int valueForInsert = a[i]; 
    . 
    . 
    . 
} 

爲元件 和Ñ -1元素,我們在最壞的情況下比較。 so 1 + 2 + 3 + ... +(n - 1)比較發生在反向排序陣列中。 和長度爲n數組公式等於: (ñ *(ñ - 1))/ 2