代码之美-寻求快速的种群计数-分治法笔记

99 阅读1分钟

2c4b250259c5280e2bb33c6f402bb66a_720.png

觉得这个分治法一开始看有点难以理解,其实就是不停的计算后y位和前y位的1的个数:

第一步:y=1,总共每部分是2y=2,使用01计算,每次先计算第二位是否是1,再计算第一位是否是1

第二步:y=2,总共每部分是2y=4,使用0011计算,每次先计算后两位1的数量,在计算前两位1的数量

第三步:y=4,总共每部分是2y=8,使用00001111计算,每次先计算后4位1的数量,再计算前4位1的数量

......