问询R语言sample函数默认参数下sample(1:N)的时间复杂度
R语言
sample(1:N)默认参数下的时间复杂度 默认参数下,sample(1:N)执行的是对1到N整数的无放回完全随机抽样,本质等价于生成1:N的一个随机排列,它的时间复杂度为O(N)(线性时间)。
细节补充:
- 该函数底层基于Fisher-Yates洗牌算法实现,这个算法通过一次线性遍历序列,将每个元素与随机选取的后续位置元素交换,全程没有嵌套循环操作,因此运行时间会随N的增长呈线性上升趋势。
- 实际测试验证:当N从10³量级提升到10⁶量级时,函数的运行时间会近似成比例增加,完全符合线性复杂度的表现。
内容的提问来源于stack exchange,提问作者Mohan
相关产品推荐
相关产品推荐

