python – 这种广度优先搜索能否更快?
发布时间:2020-12-16 22:04:50 所属栏目:Python 来源:网络整理
导读:我有一个数据集,这是一个大的未加权循环图.循环发生在约5-6路径的循环中.它由大约8000个节点组成,每个节点具有1-6个(通常约4-5个)连接.我正在进行单对最短路径计算,并已实现以下代码进行广度优先搜索. from Queue import Queueq = Queue()parent = {}fromNod
我有一个数据集,这是一个大的未加权循环图.循环发生在约5-6路径的循环中.它由大约8000个节点组成,每个节点具有1-6个(通常约4-5个)连接.我正在进行单对最短路径计算,并已实现以下代码进行广度优先搜索.
上面的代码使用了Python 2.6 Queue模块,getNeighbours()只是一个子程序,可以进行单个MySQL调用,并将邻居作为元组列表返回,例如: (( ‘富’,),( ‘巴’,)). SQL调用很快. 代码工作正常但是测试到大约7层的深度需要大约20秒才能运行(2.5GHz Intel 4GB RAM OS X 10.6) 我欢迎任何关于如何改善此代码的运行时间的意见. 最佳答案
好吧,考虑到评论的赞成,我现在就回答它.
紧密循环中的SQL肯定会让你失望.我不在乎通话速度有多快.想一想 – 你要求解析一个查询,运行一个查询 – 尽可能快,它仍然处于紧密循环中.你的数据集是什么样的?您是否可以将整个数据集选择到内存中,或者至少在MySQL之外使用它? 如果您在内存中使用该数据,您将看到显着的性能提升. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |