摘要:“数据结构+算法=程序”。前面修改了很多数据结构,现在是修改算法的时候了。我重新设计的棋盘布局的坐标表示,简化了运算。详细内容请访问《华容道与数据结构 (续 3)》。
阅读全文
02 2005 档案
摘要:在这部分内容里,将通过HashTable优化检索效率,将基于比较运算的最小算法复杂度O(Log2(n))级别降低至1。程序设计并实现了链地址法的HashTable。使用HashTable后,程序执行时间从原来的1秒缩短至0.8秒。详细内容请参考《华容道与数据结构 (续 2) 》。
阅读全文
摘要:在《华容道与数据结构(续)》这部分内容中,我将从两个方面对原有程序进行改造,"以内存换效率",进一步提升华容道程序的执行效率。方法包括两方面:1、将原有4字节棋局表示变为8字节表示以省去原有程序中的排序操作。2、用HashTable取代原有的AVLTree,提升检索效率。在本部分内容中,先说说通过8字节棋局表示提高程序执行效率。具体内容,请访问《华容道与数据结构 (续 1) 》。
阅读全文
摘要:自从《华容道与数据结构》系列文章写完后,有很多热心的朋友提出了宝贵的意见,使得华容道程序的运行效率不断提升。在这里特别感谢“智能算法爱好者”与sumtec,给程序提出了很多宝贵的意见。Sumtec指出:“AVLTree是否可以用HashTable来替代,毕竟你的目的不是要排序,而是要检验是否容易产生重复。从纯粹的理论上来说,HashTable在这方面的性能消耗应该比AVLTree要好一些,因为AV...
阅读全文
摘要:在对华容道程序性能调优时,发现Exception的效率对程序的运行影响居然如此之大,以至于在不使用Exception后,程序的执行时间从6.67秒缩短到了1.55秒。具体内容请访问《Exception对程序执行效率的影响》。
阅读全文
摘要:河北理工大学经济管理学院管理科学与工程系招聘教师,要求:至少拥有硕士研究生以上学位,信息管理与信息系统专业或相关专业,35岁以下,相貌端正,口齿清楚,愿意致力于教育行业。有意者请将简历发送到 luzhenyu@gmail.com
阅读全文
摘要:这是华容道与数据结构系列的最后一部分内容。这部分内容介绍了如何在应用程序中使用设计好的组件、如何在单独的线程中运行华容道求解程序以及“性能大比拼”,比较本程序与河北石家庄李智广的"华容道全能版 V1.1"在求解性能上的差异并分析了性能差异的可能原因以及未来可行的调整办法。详细内容请参考《华容道与数据结构 (12) 》。
阅读全文
摘要:这部分内容主要介绍华容道程序中中介、协调各数据结构运作的Mediator对象的设计。详细内容请参考《华容道与数据结构 (11) 》。
阅读全文
摘要:这部分内容介绍环形链表CircularLinkedList的实现。具体内容请参考《华容道与数据结构 (10)》。
阅读全文
摘要:这部分内容介绍TreeLinkedList的代码实现。该结构将链表与树结合起来,用于存储华容道布局的搜索结果。详细内容请看《华容道与数据结构 (9) 》。
阅读全文
摘要:这部分内容主要介绍快速排序法。内容请参考《华容道与数据结构 (8) 》。
阅读全文
摘要:这部分内容介绍棋盘布局Layout的设计。具体内容请参考《华容道与数据结构 (7) 》。
阅读全文
摘要:这部分内容介绍棋子Chessman的设计。内容请参考《华容道与数据结构 (6) 》。
阅读全文
摘要:最近在给华容道程序进行性能调优时遇到了一个令人费解的效率问题,我最初始的代码是这样写的: public override void CheckAvailableSteps(BlankPosition _blankPosition, CallBackDelegate _callback) { if(CanMoveUp(_blankPosition)) _cal...
阅读全文
摘要:从这部分开始,将介绍具体的代码设计。本部分主要说名HRD.Core命名空间下一些对象的定义。具体内容可以参考《华容道与数据结构 (5) 》。
阅读全文
摘要:在本部分内容中,我们将通过一个简化的例子演示TreeLinkedList、CircularLinkedList、AVLTree以及Stack几种数据结构是如何协同工作,完成华容道布局搜索过程的。详细内容,请访问我的文章《华容道与数据结构 (4)》。
阅读全文
摘要:《华容道与数据结构》的代码编写工作暂时告一段落,先将代码放上来,大家可以下载测试一下。注:测试代码目前已被正式代码所取代。大家可以访问《华容道与数据结构 (5) 》下载最终代码。程序的输入输出界面做得仍然不很理想,将来写《华容道与设计模式》时再做修改。数据结构用到了环形链表、树、链表、快速排序法以及AVL树。程序在.net 2003环境下调试通过。贴张图上来:有关具体算法,我会在后续的《华容道与数...
阅读全文
摘要:在调整华容道程序时遇到了一个百思不得其解的问题:完全相同的代码,用Nunit测试,运行时间在4秒左右。将测试程序中的代码原封不动的拷贝到一个ConsoleApplication的Main方法中,运行却慢到了无法忍受的地步。我想是不是因为Nunit将所有测试的DLL装载到一个单独的AppDomain中运行的原因呢?(我的程序消耗内存很大)不知有谁遇到过同样的问题?如何解决才好?先放到首页上,大家帮忙...
阅读全文
摘要:好长时间没有更新这个系列了。代码编写基本已经完成。这回接着上次的内容,说说AVL树(平衡树)。它将应用在我的程序中确保不会出现重复布局。具体内容,请参考我的文章《华容道与数据结构(3)》。
阅读全文
摘要:最近好不容易抽出点时间对《华容道》的程序做了番调整,发现程序的性能瓶颈居然在Array.Sort上面!经过调整后,程序运行时间缩短了1秒(河北石家庄李智广编写的华容道全能版V1.1第19关)!微软的System.Array类提供了一个静态方法Sort,可以很方便的对一维数据进行排序。对于比较懒的我,一向直接使用Array.Sort完成对数组的排序。今天才发现原来Array.Sort存在严重的效率问...
阅读全文