通用的sqrt中更新元素遍历问题

来源:2-7 封装更加通用的 SQRT 分解数据结构

学无止境呀呀呀

2021-01-10 15:24:39

循环merger中,为什么是Math.min((b+1)*B,N),而不是N呢?

写回答

1回答

liuyubobobo

2021-01-10

因为最后一个桶里的元素不一定有 B 个元素,(b + 1) * B 可能 > N 导致数组越界。


只要 N 不能被 B 整除就有这个问题。比如 N = 10 的时候。尝试一下在 N = 10 的时候,这里改成 N,运行程序,看是否有问题?


如果有问题,使用单步跟踪的方式具体看一下,在哪里出现了问题?为什么会出现这个问题?


进步就在这个过程中哦。


继续加油!:)

0

算法与数据结构

波波老师5年集大成之作,算法与数据结构系统学习,考试、面试、竞赛通用

2636 学习 · 1090 问题

查看课程