摘要:
最近在给华容道程序进行性能调优时遇到了一个令人费解的效率问题,我最初始的代码是这样写的: 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存在严重的效率问... 阅读全文
摘要:
华容道与数据结构系列好长时间没有更新了。现在代码的初稿基本编写完成。测试效果还不错。同一布局(河北石家庄李智广编写的华容道全能版V1.1第19关),我的程序运行时间为7.46秒,正确解得120步最优解;而华容道全能版V1.1为11.97秒,搜索深度158。程序运行结果"answer.txt"可以从http://www2.cnblogs.com/Files/zhenyulu/HRD-1.rar下载。... 阅读全文
摘要:
在写完上篇文章《DynamicProxy(动态代理)技术剖析(1)》后,才发现原来博客园的dudu、hbifts、steeven早在一年前就开始制作AOP.NET了。谢谢hbifts的指导,让我又找到了不少有用的资料。 今天,仍然继续上次话题,把DynamicProxy的Mixins技术和IInvocation接口介绍一下…… 详细内容,请访问《DynamicProxy(动态代理)技术剖析(2)... 阅读全文
摘要:
最近忙死了。刚刚将这个学期13个班的卷子判完。整整用了我3天的时间!用掉了一根半圆珠笔芯。 这还是这个学期照顾我,少安排了点课。最多时候我一学期教24个班,判卷子用掉3支笔芯!今天又接到电话,假期里面要赶一个项目。假期又泡汤了。 阅读全文