特殊情况插入排序的最坏情况比较

时间:2015-02-11 14:40:50

标签: algorithm sorting

在n个值上考虑带有Sentinel的插入排序,其中每个值在输入中恰好出现两次(因此n必须是偶数)。因此,比较的最佳案例输入是元素已经排序,并且最佳情况下的确切比较数是n-1。我认为比较的最坏情况输入是元素反向排序。但在这种情况下,确切的比较数是多少?为什么?

1 个答案:

答案 0 :(得分:0)

对具有1个元素的数组进行排序。 和 n -1元素插入到数组

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

对于索引 i 中的元素,我们在最坏的情况下进行 i 比较。 所以1 + 2 + 3 + ... +( n - 1)比较发生在反向排序的数组中。 并且长度为n的数组的公式等于: ( n *( n - 1))/ 2