|
|
这里是我的另一种尝试,在进入主循环之前对所有空位排序。排序的原则是从最薄弱的环节开始击破,即查找那些行、列、区中空位最少的单元。除此之外和原来的算法一样。
我到老地方下载了“高手进阶”的五万个题目,只对其中1000个进行了测试并和上一种解法作比较。一千个做下来平均0.27秒,最坏的情况是5.6秒;旧方法平均是1.15秒,最坏情况54.38秒。可见新算法有所改进。但其中也有约三分之一是旧算法更快,尽管差距不大。
我在新代码中有意使用了VARRAY, 这下子三种COLLECTION都用上了,显得很花哨,也可当作COLLECTION应用的范例来看。
源代码已上传到主贴的附件中。
[ 本帖最后由 newkid 于 2008-10-23 02:58 编辑 ] |
|