舞蹈链 – Dancing links

偶然发现了舞蹈链(Dancing links),也叫DLX算法,这是求解精确覆盖问题的一种高效算法。 这篇博客跳跃的舞者,舞蹈链(Dancing Links)算法——求解精确覆盖问题中,首先使用回溯方法举例解决经典的0-1矩阵精确覆盖问题。(DFFCS算法也是回溯法的一种,他们典型步骤的思路是一致的)。紧接着提出求解过程中存在大量的缓存和回溯,(不仅是DFFCS,如果只使用BDAT算法递归调用,也存在大量缓存问题),Dancing Links提出了一种交叉十字循环双向链的数据结构,(矩阵中每个元素横向和纵向都是循环双向链表结构),然后又引入了辅助元素(类似我们的属性和对象),求解过程中只是对指针操作,不需要额外的内存空间,而且指针操作效率很高。 ...
Read More