插入比较#似乎太大了

时间:2016-04-19 01:39:14

标签: c++ algorithm sorting selection insertion

如果对于具有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;
}

1 个答案:

答案 0 :(得分:1)

插入排序的平均案例表现为O(N^2)(请参阅wiki entry)。对于100个元素的向量,因此预期的比较次数为O(10000)。与2656一起出现,或者在第二次运行中,4995,因此比较更低比您预期的更低。