北京地铁线路图纯算法附带求极权值(原创) Level2
北京地铁线路图:
在上一版本中由于时间仓促所以本人没有全部把北京地铁线路写入程序里面,这是第二版本,接下来还有好几个思路和大胆的想法 感兴趣的请关注! 谢谢
现在这一版本已经把北京地铁全部路线已经加载进来了! ////"昌平线","房山线","1","2","4","5","6","8","9","10","13" "15","亦庄线" ,"八通线" 八通线
QA:为什么没加机场线呢 AN:机场线显然是去机场的,平时换乘地铁不至于东直门到三元桥去坐25元的机场线吧 也不太划算! 要是非有人想 后期加进来一样,也不影响现在的思路,
1:
这里我给出程序加载数据的代码:
1 ////"昌平线","房山线","1","2","4","5","6","8","9","10","13" "15","亦庄线" ,"八通线" 八通线 begin 2 b1 = "四惠东"; 3 b2 = "土桥"; 4 len = "16.6"; 5 timem = "29"; 6 SWAP(backlist, ref arry, b1, b2, len, timem); 7 ////"昌平线","房山线","1","2","4","5","6","8","9","10","13" "15","亦庄线" ,"八通线" 八通线 end
以这种方式加载的目的不是因为代码好写而是因为后期还有一定的完善代码 先预留这里 到时候在写入XML文件中程序进行读取,ps(这里的数据来至百度地图,难免存在一点点误差,都说误差是不可避免的!)
这样的数据有很多,这里我给出运行加载数据以及存入到hashtable中的代码和消耗时间:
这是消耗的时间(精确到了毫秒)
2:
因为1的步骤即可进行第二步:
消耗时间:
1 ///时间复杂度比较复杂,因为换乘结点的关系导致的 2 ///最坏情况下(每个站之间都有连线,但是地铁线路图实际上是不存在次情况的):O(2^n) 3 ///相反 4 ///最优情况下(之间只有唯一的连接点,次情况下也不是很现实的,有的地铁换乘是多个换乘点都在同一条线上的) 5 ///此时用hashtable所以是:O(1) 6 HashSet<string> GetF(HashSet<string> beginlist, int i) 7 { 8 if (mainht == null || mainht.Count == 0) return null; 9 HashSet<string> returnlist = new HashSet<string>(); 10 string[] earry = null; 11 if (beginlist.Count == 0) 12 isend = 1; 13 else 14 {22 //move code40 } 41 earry = null; 42 if (isend == 0) 43 return GetF(returnlist, i); 44 else 45 return null; 46 }
地图的递归查询已经完了, 到这里已经差不多了! 后面是取权值, 在下一版本中我会用更加大胆更加高性能的思路给写出来!
这是测试的结果的部分数据:
LoadData begin:20130428161952247
LoadData end:20130428161952247
GetF() begin:20130428161952:247
GetF() end:20130428161952:403
20130428161952559
西二旗------------->国贸:
查看全部数据请点击我
测试结果数据END
从这些方法中看出来了一些问题比如:数据构造还不完善,算法执行时间较长,等等问题!
热烈欢迎大家发表自己的意见和其他! 在下一版本中我会用很大胆的想法写出来改善之前的低效率递归方法!
祝大家五一快乐!
下篇再见!
BY:SF
time: 2013-04-28-16:18
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义