如果输入是排序数据库还是非排序数据库,那么输入大小对算法时间复杂度有影响吗?

问题描述

关于时间复杂性,我有一个理论性的问题(如果不允许这样做,请引导我到正确的地方!)。

我有一个按词法排序的列表,但不是。我知道线性搜索和二进制搜索算法在运行时间上有很大的差异(二进制搜索是对数的,因此每次输入都减半),但除此之外,输入的大小是否有任何意义是排序列表还是非排序列表?如果输入很大,还有其他原因使排序列表更好吗?

这个东西真的很新,所以任何澄清将不胜感激!

解决方法

我知道线性搜索和二进制搜索算法在运行时间上有很大差异(二进制搜索是对数的,因此每次输入都减半)

此算法以及其他类似算法是主要优势

排序列表与未排序列表的输入大小是否有任何重要意义

否,无论顺序如何(对于标准列表),每个元素都在RAM中占用相同的空间。

如果输入很大,还有其他原因使排序列表更好吗?

优势:

  • 某些算法在排序的输入集上更快
  • 如果显示的是最终用户,排序后的输出可能会更令人愉悦。
  • 排序后的数据更易于压缩,因此对于磁盘上的存储或专用RAM存储而言,它可能会更小,但是如果只是将其放入标准数组或列表中,则没有任何区别。

可能还有更多,这是我可以立即想到的。