插入比较#'s看起来太大了
Insertion comparison #'s seem too big
对于一个有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,比你预期的要低。
相关文章:
- std::vector的包装器,使数组的结构看起来像结构的数组
- 看起来is_nothrow_constructible_v()在MSVC中被破坏了,我错了吗
- 学习多线程C++:添加线程不会使执行速度更快,即使它看起来应该
- 尽管一切看起来都很好,但值不会交换
- 自制的上衣:看起来一样,但不完全相同
- 如何使它看起来像正在下的雪
- 如何用逗号分隔输出?如何改进此代码以使其看起来更体面?
- 我的代码看起来不错,但某些输入会导致不需要的输出
- 为什么这个结构的大小是 40,而它看起来应该是 12/24?
- 我需要将阵列样式的邻接矩阵转换为矢量样式(以使其看起来更好)
- C 时间测量看起来太慢了
- 写入.ini文件 - SimpleIni SetValue 尽管看起来成功了,但什么也没做
- 插入比较#'s看起来太大了
- 编译器在尝试优化/内联我看起来微不足道但并非微不足道的 dtor 时搬起石头砸自己的脚,我做错了什么
- 此代码看起来像是删除了此对象,但事实并非如此
- Win32 API按钮看起来很新,但使用了旧字体
- 设置了布局,但是QWidget看起来仍然是空的
- 为什么看起来好像我的对象被破坏了两次
- 如何将一个大矩形分割成N个小矩形,使其看起来随机
- LNK2005错误.看起来一个文件被包含了两次