如果对于具有100个随机两位数字的向量,这些比较数字应该是这么大的值,我感到很困惑。完整的计划 - >安全链接:https://ideone.com/oybDbD程序输出位于链接的底部。欣赏输入。
int insertionSort (vector<int> &v) {
int j, temp, counter = 0;
for (int i = 1; i < v.size(); i++) {
j = i;
while (++counter && j > 0 && v[j] < v[j-1]){
temp = v[j];
v[j] = v[j-1];
v[j-1] = temp;
j--;
}
}
return counter;
}
答案 0 :(得分:1)
插入排序的平均案例表现为O(N^2)
(请参阅wiki entry)。对于100个元素的向量,因此预期的比较次数为O(10000)
。与2656一起出现,或者在第二次运行中,4995,因此比较更低比您预期的更低。