8皇后以及N皇后算法探究,回溯算法的JAVA实现,非递归,数据结构“栈”实现

网友投稿 801 2022-05-28

是使用递归方法实现回溯算法的,在第一次使用二维矩阵的情况下,又做了一次改一维的优化

但是算法效率仍然差强人意,因为使用递归函数的缘故

下面提供另一种回溯算法的实现,使用数据结构”栈“来模拟,递归函数的手工实现,因为我们知道计算机在处理递归时的本质就是栈

时间复杂度是一样的,空间复杂度因为自定义了class,有所上升

8皇后以及N皇后算法探究,回溯算法的JAVA实现,非递归,数据结构“栈”实现

经过测试其性能甚至低于上篇博客的递归实现

权当是使用数据结构”栈“,解决15皇后的代码如下:

package com.newflypig.eightqueen; import java.util.Date; import java.util.Stack; /** * 使用数据结构“栈”,模拟递归函数 * 实现非递归方案的回溯算法 * @author newflydd@189.cn * Time: 2015年12月31日 下午6:13:05 */ public class EightQueen3 { private static final short N=15; public static void main(String[] args){ Date begin =new Date(); long count=0; /** * 初始化栈和棋盘,并向栈中压入第一张初始化的棋盘 */ Stack stack=new Stack(); short[] chessData=new short[N];

Java 数据结构

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:公众号文章汇总
下一篇:WinPE修改超级管理员密码的方法
相关文章