如果算法:如何定义计算复杂度:
- ...产生许多结果?作为一个总数(那么产生一组的算法
k
不能比O(k)快)或每个元素(那么必须将估计值相乘以将其与不产生集合的算法进行比较)?- 存储复杂性如何——估计是否反映了整个集合是否需要一次出现在内存中,或者每个连续元素都可以产生和丢弃?
- ...有多个参数?每个参数的单独数字或组合的数字?
适合这两种情况的示例是k
从 中选择元素N
。例如,根据是否需要~k
或~N
需要步骤,估计是否存在差异?
我希望看到一些确凿的证据:这些案例中术语的正式定义和/或如何在 CS 论文中消除这些歧义,而不仅仅是随机的想法和/或个人经验。目标是制定一个完整的、最先进的解决方案,以一劳永逸地消除我(和其他人)文本中的这些歧义。
让我对此感到困惑的问题是:O(1) 中的唯一(非重复)随机数?,你如何有效地生成一个介于 0 和上限 N 之间的 K 个非重复整数的列表,用于选择单个值的随机组合的算法?,有效地从链表中选择一组随机元素。