向量(插入然后排序)或设置速度更快的方法是哪种?

苏里

我有目标的数字序列(未排序,没有重复)对它们进行排序。

方法1:插入向量。O(n),使用排序算法和排序。O(登录)

方法2:插入组中。o(登录)

哪种方法会更快?

我感觉设置会更快,因为向量中的每个插入都必须分配完整的数组元素,然后将其复制然后删除,这可能会很昂贵。但是我通过网络阅读了大部分地点矢量的信息。

谁能建议我使用正确的逻辑哪个更快?

编辑:如果我们不事先知道元素号是哪个会更快设置或向量(因为这两个元素号都是smaall和d,元素号不是很大?注:如果元素号没有很大,则是更好的选择)似乎但是对小的人也有好处?(不知道)

量子开发
  • 如果您事先知道要期待的许多元素,则可以reserve()在向量中留出空间以避免重新分配,从而使第一个选择非常有趣(快速插入,单个排序)。

    如果您需要执行一次,请前往std::vector<>如果程序稍后会出现其他插入,则std::set<>可能会更有趣。

  • 如果您事先不知道期望的大小,则向量可能会发生重新分配,这std::set<>是一个不错的选择(理论上更好的平均复杂度)。

    为O(n)+ O(N *的log(n))的向量VS为O(n *的log(n))对于该组

  • 如果元素的数量很小,您仍然可以保留一些空间(例如,如果希望有10个元素,则可以保留100个是安全的),然后继续使用 std::vector

无论如何,对这两个解决方案进行概要分析始终是一个好习惯,实际结果(除其他事项外)将取决于输入的初始排序状态以及每个容器的实现质量。

注意:

  • 请记住std::set,如果您愿意的话,它具有更大的内存占用空间。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

“分组”然后排序

来自分类Dev

是否有其他选择可插入然后排序

来自分类Dev

Postgres GROUP BY,然后排序

来自分类Dev

AngularJS:分组然后排序

来自分类Dev

找到确切位置,然后插入还是添加,然后排序?哪个更好?

来自分类Dev

Vimscript函数选择块然后排序

来自分类Dev

Excel SortFields添加然后排序

来自分类Dev

Excel SortFields添加然后排序

来自分类Dev

Javascript拖放文件,然后排序

来自分类Dev

拆分列表然后排序

来自分类Dev

按字母排序代表卡片的元组列表,然后排序

来自分类Dev

MySQL排序依据,然后排序选择依据

来自分类Dev

排序向量,然后将其放入AVL树或直接输入,哪个更快?

来自分类Dev

排序向量,然后将其放入AVL树或直接输入,哪个更快?

来自分类Dev

为什么与矩阵列相比,哪种方法在数据框列上的运行速度更快?

来自分类Dev

如何汇总与数组中匹配的值然后排序

来自分类Dev

Mongodb-合并子文档中的数组,然后排序

来自分类Dev

合并然后排序两个xml文件

来自分类Dev

PHP遍历XML文件,放入数组,然后排序

来自分类Dev

Django:在外键上区分,然后排序

来自分类Dev

哪种方法会更快?

来自分类Dev

哪种算法对这些数字对进行排序更快?

来自分类Dev

读取CSV文件,然后排序,然后再次使用数组

来自分类Dev

计算向量误差的更快方法

来自分类Dev

VB.net 排序列然后排序但保留行位置

来自分类Dev

获取QueryStrings的最佳方法还是哪种更快?

来自分类Dev

哪种方法对Python迭代更快?

来自分类Dev

如何查看哪种方法运行更快

来自分类Dev

GET后排序