谁知道八皇后问题用回溯法的时间复杂度是多少呀?

genguyige 2010-01-06 11:45:44
怎么算的??
...全文
5874 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
cklleonhardt 2011-12-20
  • 打赏
  • 举报
回复
非递归算法的话是O(n!)
曼波鱼Sunfish 2011-06-28
  • 打赏
  • 举报
回复
回溯法的话,应该不是哦o(n!),因为是一棵完全n叉树,感觉是o(n^n),不知是否有道理。
likee003 2010-01-06
  • 打赏
  • 举报
回复
初略算了一下,n^3.
pady_pady 2010-01-06
  • 打赏
  • 举报
回复
o(n!)差不多
davelv 2010-01-06
  • 打赏
  • 举报
回复
计算主要语句的运行次数.例如N皇后里面判断当前点可不可以放置皇后的那条语句的运行次数.
理论资料可以参考算法导论3,4章,一般的算法书籍也会有讲.
genguyige 2010-01-06
  • 打赏
  • 举报
回复
有没有人能告诉我是怎能算的呢??
davelv 2010-01-06
  • 打赏
  • 举报
回复
说错了,应该是O(n!)。
howlet2 2010-01-06
  • 打赏
  • 举报
回复
O(n^n) 俺老师以前说过的
alexhilton 2010-01-06
  • 打赏
  • 举报
回复
O(n^3)
davelv 2010-01-06
  • 打赏
  • 举报
回复
N后是NP问题.貌似回溯法的时间复杂度是O(n^n)
  • 打赏
  • 举报
回复
这个细算太复杂了。
初略感觉是O(n^3)的数量级。
苍蝇①号 2010-01-06
  • 打赏
  • 举报
回复
算法设计与分析 上面有记录
做一门精致,全面详细的 java数据结构与算法!!!让天下没有难学的数据结构,让天下没有难学的算法,不吹不黑,我们的讲师及其敬业,可以看到课程视频,课件,代码的录制撰写,都是在深夜,如此用心,其心可鉴,他不掉头发,谁掉头发???总之你知道的,不知道的,我们都讲,并且持续更新,走过路过,不要错过,不敢说是史上最全的课程,怕违反广告法,总而言之,言而总之,这门课你值得拥有,好吃不贵,对于你知识的渴求,我们管够管饱话不多说,牛不多吹,我们要讲的本门课程内容:稀疏数组、单向队列、环形队列、单向链表、双向链表、环形链表、约瑟夫问题、栈、前缀、中缀、后缀表达式、中缀表达式转换为后缀表达式、递归与回溯、迷宫问题、八皇后问题、算法的时间复杂度、冒泡排序、选择排序、插入排序、快速排序、归并排序、希尔排序、基数排序(桶排序)、堆排序、排序速度分析、二分查找、插值查找、斐波那契查找、散列、哈希表、二叉树、二叉树与数组转换、二叉排序树(BST)、AVL树、线索二叉树、赫夫曼树、赫夫曼编码、多路查找树(B树B+树和B*树)、图、图的DFS算法和BFS、程序员常用10大算法、二分查找算法(非递归)、分治算法、动态规划算法、KMP算法、贪心算法、普里姆算法、克鲁斯卡尔算法、迪杰斯特拉算法、弗洛伊德算法马踏棋盘算法。
01背包问题动态规划资源。动态规划、回溯法、分支限界法。动态规划是一种通过将问题分解成更小的子问题来解决复杂问题的方法。它通常用于解决最优化问题,如最长公共子序列、最短路径等。动态规划的核心思想是将问题分解成重叠子问题,并使用记忆化搜索或自底向上的方法来避免重复计算。通过建立状态转移方程,动态规划可以高效地求解问题,时间复杂度通常为$O(n^2)$或$O(n^3)$。回溯法是一种通过不断尝试所有可能的解,并在不符合条件时进行回溯的方法。它通常用于解决组合优化问题,如八皇后、0-1背包等。回溯法的核心思想是通过深度优先搜索遍历所有可能的解空间,并在搜索过程中剪枝以提高效率。由于回溯法会尝试所有可能的解,因此时间复杂度通常较高,为指数级别。 分支限界法是一种结合了深度优先搜索和剪枝的方法,用于解决组合优化问题。它通过维护一个优先队列或堆来选择下一个扩展节点,并在扩展节点时进行剪枝以避免搜索无效的解空间。分支限界法的核心思想是通过限制搜索空间并及时剪枝以提高搜索效率。由于分支限界法会选择性地扩展节点并剪枝,因此时间复杂度通常介于回溯法和动态规划之间。 总的来说,动态规划适用于具有重叠子问题。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧