求一组序列的全排列
摘要: 如果我们知道选 3 个元素的排列,嵌套 3 层循即可;但是如果我们暂时不知道选几个元素,嵌套层数是一个变量怎么办?
阅读全文
posted @
2009-07-29 00:34 左洸 阅读(445) |
评论 (2) 编辑
不能滥用穷举暴力:关于几种不同图搜索算法的详细分析与思考
摘要: 昨天,在女人火把过桥问题中,对图的搜索并不完美,是典型的穷举算法思想,希望能生成一棵以起点为根的“全分支树”,结果这棵树只能在理论上是存在,因为我的机器在宇宙毁灭之前生成不了他!不得已,我只好限制了树的深度,路线是找到了,但是并没有达到我想要的目标:找到所有路线(不包括环路的)。在图中该怎样搜索才能找到所有路线呢?下面是我关于几种不同图搜索算法的详细分析与思考。
阅读全文
posted @
2009-07-26 17:38 左洸 阅读(2007) |
评论 (7) 编辑
女人火把过桥:基于状态空间的带权图搜索算法(修改后详细分析版)
摘要: 2条最短路径,30个状态节点,节点两两之间有112条通路,5层搜索树的情况下可以找到 37 条路线。将问题抽象成 abcd 四个人,R 或 L 代表火把位置, - 代表桥,基本思想是:先找状态节点,再找两两之间通路。然后将起始节点作为 root ,根据邻居一层一层生成树,最后对树搜索,只要搜索范围够大,就可以找到所有的最优路线和一部分可能路线。另外,这种方法具有通用性,可以查找任意两个节点之间的路线。
阅读全文
posted @
2009-07-25 05:53 左洸 阅读(1736) |
评论 (6) 编辑
一万个“无序”数查找两个重复数,在O(N)的基础上再快一点
摘要: 那个重复的数字,最终要访问他自己的位置第二次,当他访问时,发现位置已经被上一个自己访问过了,他就知道自己不是唯一的了。这种算法平均情况下循环次数是 N/2,虽说数量级上仍然是 O(N)级别的,但是平均来说仍然比求和法快了一倍
阅读全文
posted @
2009-07-22 11:01 左洸 阅读(2228) |
评论 (38) 编辑
一万个有序数查找两个重复数,快速二分查找法 O(logN)
摘要: (10001个数字的和)- (10000个数字的和)= 重复数字,这种算法思路简单,但是时间复杂度是最高的,如果我们考虑到这是一个有序数列,而且只有两个重复数,时间复杂度 O(logN)的二分折半查找法就一跃而出了。
阅读全文
posted @
2009-07-21 21:43 左洸 阅读(2662) |
评论 (40) 编辑