求一算法,有某地区所有的通话数据,2个不认识的号码如何中转认识。
几年前做过移动的项目,当时也有这个功能,但不是我做的;当时是做的一个Silverlight页面,输入2个互不认识的电话号码,可以知道让号码1打X1然后认识X2,通过X2认识X3,同X3认识X4,最终能认识号码2这样;使用的ORCALE数据仓库+MSSQL,查询一次大约半分钟-2分钟的样子。
当时实现的方法好像比较死板,无非就是循环递归,查询号码1所有的通话记录,在找所有“通话记录号码”的所有通话记录,直到找到号码2为止,递归只执行十层的样子。
如果把数据结构看成普通的,就是列一本机号码,列二拨出拨入号码,列三拨入拨出状态这样。
求牛人,求算法(数据结构可优化)。