Jul
21
十叉树之关于怎么在10万个手机号码中选择重复号码的问题。
tommyhu , 22:36 , ASP.NET , Comments(1) , Trackbacks(0) , Reads(8087) , Via Original
Large | Medium | Small


十叉树之关于怎么在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做比较。
>>
▲返回顶部

互联网开发网友


2012/11/07 17:50
伟人之所以伟大,是因为他与别人共处逆境时,别人失去了信心,他却下决心实现自己的目标。
Pages: 1/1
1

