在网上或是科技论文文献中,总是看到有人说自己的数独求解算法多牛,有时我为了验证他的算法有多牛,还把他的代码拷下来在自己的电脑上试一下,但结果还是让我比较失望的,如果你想知道你的算法有多牛,那就跑一下这个数独,如果能在一秒内能解决,那就是好的算法。如果能在1ms内解决,那就是非常有效的算法。
测试用例:
000010054800000000000000000650400000000002730000000000210000800700000300000350000
以下是我所掌握的几个数独求解算法的实验数据:
数独求解算法对比研究
初盘为:
000010054800000000000000000650400000000002730000000000210000800700000300000350000
简单回溯法,找到1个解:
379816254864275193521943687657431928498562731132789546213694875745128369986357412
耗时:21323.990279ms
候选解优化法,找到1个解:
379816254864275193521943687657431928498562731132789546213694875745128369986357412
耗时:142.098814ms
候选解链优化法,找到1个解:
379816254864275193521943687657431928498562731132789546213694875745128369986357412
耗时:62.160231ms
舞蹈链算法,找到1个解:
379816254864275193521943687657431928498562731132789546213694875745128369986357412
耗时:0.164978ms