[英]An algorithm to find an orthogonal path between two 10 digit numbers
设S是一组10位数字。 给定S中的任意两个数字v和w ,我想知道是否存在一系列数字v = u_0,u_1,...,u_k = w,这样:
作为一个加号,找到一个算法来找到最短的序列会更好。
理想情况下,我更喜欢C(或伪代码)解决方案,但我真的非常感谢任何和所有关于这个的建议! 谢谢!
从S的元素形成图形:u和v是相邻的,如果它们恰好在一个坐标上不同。
现在给你,做一个广泛的第一次搜索,直到你击中v。
我将S
转换为节点对象的图形,其中每个节点对象包含指向相邻节点的链接。 (在某些编程语言中,将'links'作为'指针'读取。)邻接由序列上的条件2定义,因此通过结果图的任何路径都是与这两个条件匹配的序列。
从那里开始,检查图中两个顶点的连通性是一个简单的问题。 最简单的解决方案是广度优先搜索 。 (该特定算法也恰好找到最短路径。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.