通用的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,运行程序,看是否有问题?
如果有问题,使用单步跟踪的方式具体看一下,在哪里出现了问题?为什么会出现这个问题?
进步就在这个过程中哦。
继续加油!:)
相似问题