7月21
十叉树之关于怎么在10万个手机号码中选择重复号码的问题。
大家一般都认为用Hash的办法。不过其实还有更高效的算法。
计算机图形学中,有个八叉树量化法,是用来从24颜色中查找重复颜色,并且进行计数归并的算法。它的算法思想是八叉树一共8层,每层都有8个节点,每一条路径从根到页正好对应8个位.
而颜色RGB 三个数字正好可以拼成一个由0-7数字组成的8位数字,于是正好可以用八叉树算法进行插入。
八叉树比较复杂,不过对于我们的这个需求来说,其实比较简单。
我们这个算法是10叉树,每层都保存了0-9 10个数字。层数就是手机号码的长度。
手机号的第一位就是第一层,只需遍历到最后一层即可判断是否重复。
于是让我们来实现这个十叉树。效率都和回复中的Linq做比较。
>>
大家一般都认为用Hash的办法。不过其实还有更高效的算法。
计算机图形学中,有个八叉树量化法,是用来从24颜色中查找重复颜色,并且进行计数归并的算法。它的算法思想是八叉树一共8层,每层都有8个节点,每一条路径从根到页正好对应8个位.
而颜色RGB 三个数字正好可以拼成一个由0-7数字组成的8位数字,于是正好可以用八叉树算法进行插入。
八叉树比较复杂,不过对于我们的这个需求来说,其实比较简单。
我们这个算法是10叉树,每层都保存了0-9 10个数字。层数就是手机号码的长度。
手机号的第一位就是第一层,只需遍历到最后一层即可判断是否重复。
于是让我们来实现这个十叉树。效率都和回复中的Linq做比较。
>>

《甩葱歌》怀旧版,始于1974(附多个不同版本)
几道有意思的逻辑分析题





