首页 > 代码库 > 关于8皇后3种算法时间复杂度的实际比较
关于8皇后3种算法时间复杂度的实际比较
隐隐的感觉到一些不对,我尝试添加对can_put函数做一个统计。理论上将,can_put函数的执行次数就是O(T)
CNT: 352, times: 72378
real 0m0.008s
user 0m0.004s
sys 0m0.000s
CNT: 352, times: 1222703298
real 0m18.207s
user 0m18.193s
sys 0m0.004s
CNT: 352, times: 459314
real 0m0.022s
user 0m0.016s
sys 0m0.000s
第一种是递归,除了耗栈,应该是足够的经济实惠
第二种是遍历,空间上很经济,时间上没有做任何考虑,是O(n^n)的,也就是最糟糕的
第三种是优化过的遍历,增加了剪枝(大概这个说法?),大幅度提高了效率,但是和递归相比,还是很糟糕,不知道是算法出了问题,还是为栈空间付出的代价?
等我干完手头的活儿,休息时拿出来玩玩看,总觉得第三钟算法不该这么费时间,哪里写错了吧。
关于8皇后3种算法时间复杂度的实际比较
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。