algorithm - "constant"在这种情况下是什么意思?

标签 algorithm time-complexity

我目前正在阅读算法导论这本书,我有一个关于分析算法的问题:

书上说归并排序的计算成本是c lg n

We restrict c to be a constant so that the word size does not grow arbirarily (If the word size could grow arbitrarily, we could store huge amounts of data in one word and operate on it all in constant time)

我不明白这里的“常量”是什么意思。谁能解释清楚这是什么意思?

最佳答案

算法研究中的计算复杂性涉及寻找函数,这些函数为算法所需的时间(或空间)提供上限和下限。还记得你在高中学过的基本代数吗?你在其中学习了直线的一般点斜率公式?该公式 y = mx + b 提供了两个参数,m(斜率)和 b(y 截距),它们完整地描述了一条直线。这些常数 (m,b) 描述了直线所在的位置,斜率越大意味着直线越陡。

算法复杂性只是描述算法运行时间(和/或需要多少空间)上限(也可能是下限)的一种方式。使用 big-O(和 big-Theta)表示法,您将找到一个为算法成本提供上限(和下限)的函数。常数只是移动曲线,而不是改变曲线的形状。

关于algorithm - "constant"在这种情况下是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19648171/

相关文章:

algorithm - 为什么 igraph spinglass 给我 'Cannot work with unconnected graph' ?

c - 加密性能

algorithm - 检查调整后的相同二叉树的时间复杂度

algorithm - 这个显然是 O(n log n) 的乘法算法的错误在哪里?

algorithm - 获取颜色联合的可能性以生成另一种颜色

algorithm - 在有向图中找到循环的最佳(时间复杂度)算法是什么?

算法分析——我的想法正确吗?

complexity-theory - 阿克曼函数的时间复杂度

algorithm - 扩展欧几里德算法的位复杂度是多少?

hashtable - 填充哈希表的时间复杂度?