我对算法很新,我有一些问题。假设我有一个排序算法,它以O(n ^ 2)对数据进行排序,运行时复杂度。例如,这可以是选择排序。现在,让我们说使用HashTable而不是使用选择排序,它将运行时间减少到O(n)。
任何帮助都将不胜感激。
答案 0 :(得分:0)
如果您的分析主要关注算法的时间复杂度,则应仅关注时间每个操作的成本。
如果您的分析侧重于算法的时间和空间复杂度,您应该关注时间每个操作成本,以及空间< / strong>数据结构的成本。
由于时间和空间是不同的资源,时间和空间分析应该分开进行。
那就是 Space - time tradeoff的关键概念。简而言之,人们可以用空间修改给定的算法交易时间,反之亦然。
例如,您可以通过引入一些复杂且空间消耗但速度快的数据结构来降低时间复杂度。这将是时间的一个例子 - &gt;空间权衡,因为我们以增加内存使用为代价来加速算法。
答案 1 :(得分:0)
如果是理论算法理论中的运行时间分析,空间复杂度对运行时间复杂度没有影响。因为当我们谈论时间复杂性时,我们谈论的是一个程序的时间复杂度 Turing Machine,内存无限。
空间和时间的权衡只适用于应用程序。请参阅@ Haile的帖子以供参考。