插入比较#'s看起来太大了

Insertion comparison #'s seem too big

本文关键字:看起来 大了 比较 插入      更新时间:2023-10-16

对于一个有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;
}

插入排序的平均事例性能为O(N^2)(请参阅wiki条目)。因此,对于100个元素的向量,预期的比较次数为O(10000)。因此,在第二次测试中,对比结果为2656,或4995,比你预期的要低。