首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nQueens算法的时间复杂性

nQueens算法的时间复杂性
EN

Stack Overflow用户
提问于 2022-08-16 21:24:25
回答 1查看 46关注 0票数 0

我有些问题可能是最基本的问题,但我觉得很难理解。如何确定nQueens的时间复杂度。在一些帖子里写的是n!因为在(4*4)矩阵中,每个皇后得到一行&当皇后们向下移动列选项时,列选项减少(n * n-1 *n-2.)这很好,但在递归算法中,我们通过rowIndex,对于每个调用,我们检查皇后是否可以通过所有列放置在单元格循环中&然后调用solveNQueens表示rowIndex+1。在这种情况下,时间复杂度仍然是n!

代码语言:javascript
复制
bool solveNQueens(rowIndex, matrix)
{
  //recursion base case to exit

  //decision tree
  for (int i = 0; i<4; i++)
  {
    if(cellAvailable)
    {
      solveNQueens(rowIndex+1, matrix);
    }
  }
}
EN

回答 1

Stack Overflow用户

发布于 2022-08-17 02:05:12

实际上,O(n!)是一个上界。但作为这篇文章解释,解决方案的数量大致是(0.143n)^n。这就给出了一个超指数下界。

想出一个更好的答案很可能是一个开放的研究问题。但是我希望下界在正确的范围内,因为算法需要什么才能产生所有的答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73380500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档