【问题标题】:Does the input size matter for algorithm time complexity if the input is a sorted database versus non-sorted?如果输入是排序数据库还是非排序数据库,输入大小对算法时间复杂度是否重要?
【发布时间】:2020-08-21 01:33:25
【问题描述】:
我有一个关于时间复杂度的理论问题(如果不允许,请指导我到正确的地方!)。
假设我有一个按词法排序的列表,而一个不是。我知道线性搜索和二分搜索算法在运行时间上有很大差异(二分搜索是对数的,所以每次输入减半),但除此之外,输入的 大小是否有任何意义 用于排序列表与非排序列表?如果输入非常大,排序列表会更好,还有其他原因吗?
在这方面真的很新,所以任何澄清将不胜感激!
【问题讨论】:
标签:
python
algorithm
sorting
time-complexity
【解决方案1】:
我知道线性搜索和二分搜索算法在运行时间上有很大差异(二分搜索是对数的,所以每次输入减半)
这和其他类似的算法是主要优势
排序列表与非排序列表的输入大小有什么关系吗
不,每个元素在 RAM 中占用相同数量的空间,无论顺序如何(对于标准列表)。
如果输入非常大,排序列表会更好吗?
优点:
- 某些算法在排序的输入集上速度更快
- 如果显示排序输出,最终用户会更满意。
- 排序后的数据更容易压缩,因此对于存储在磁盘或专用 RAM 存储中,它可能会更小,但如果您只是将其放入标准数组或列表中,则没有任何区别。
可能还有更多,这是我随便想出来的。