数独解题思路——求解数独

求解数独过程用到了DLX(Dancing Links)算法,算法的基础是回溯算法,主要用于解决精准覆盖问题。

回溯法及假设当前位置的数字,然后往下一个位置进行,直到进行到某一个位置时发现无论如何也找不到正确的数字,则往回追溯,更换上一步的假设。

回溯的算法效率有待提升,并且需要缓存回溯过程中的大量中间结果,对内存也是不小的开销,于是DLX算法采用了双向循环十字链表,回溯过程对应的缓存得以解决:产生下一步时只需要修改链表链接方式,原本在内存中的节点仍然存在,回溯时只需重新加入链表即可,这就减少了回溯过程中不必要的内存开销。

参考资料:https://www.cnblogs.com/grenet/p/3145800.html

你可能感兴趣的:(软件工程基础)