欢迎光临
我们一直在努力

回溯的概念

文章目录

  • 回溯的定义和思想
  • 回溯和深度优先搜索的联系和区别
  • 目录

回溯的定义和思想

回溯是一种试探算法,使用搜索的方式寻找问题的解。

回溯的基本思想是:沿着一条路尝试,如果可能存在符合要求的解则前进,如果不可能存在符合要求的解则回溯后退并换一条路尝试。回溯的名称来源于搜索过程中的回溯后退。

使用回溯搜索解的过程中,每一步都有多种选择,因此回溯的时间复杂度较高,通常为非多项式的指数级或阶乘级。搜索过程中,如果遇到不可能存在符合要求的解的情况则可立即回溯后退,停止当前路的继续搜索,这样的减少搜索空间的做法称为剪枝,使用剪枝可以在一定程度上降低回溯的平均时间复杂度。

回溯和深度优先搜索的联系和区别

回溯采用试探性搜索,其本质是深度优先搜索,因此回溯的思想基于深度优先搜索。一般而言,回溯问题比深度优先搜索问题更困难。

回溯和深度优先搜索的区别有以下几点。

  • 深度优先搜索适用于显性图结构(包括树结构),回溯适用于隐性树结构。

  • 深度优先搜索遍历图中的每个结点,回溯遍历每个可能的序列。

  • 深度优先搜索的时间复杂度关于数据规模为线性或多项式,回溯的时间复杂度关于数据规模通常为指数级或阶乘级。

  • 目录

  • 回溯题目:电话号码的字母组合
  • 回溯题目:全排列
  • 回溯题目:组合
  • 回溯题目:子集
  • 回溯题目:字母大小写全排列
  • 回溯题目:单词搜索
  • 回溯题目:所有可能的路径
  • 回溯题目:括号生成
  • 回溯题目:全排列 II
  • 回溯题目:子集 II
  • 回溯题目:最多可达成的换楼请求数目
  • 回溯题目:串联字符串的最大长度
  • 回溯题目:活字印刷
  • 回溯题目:黄金矿工
  • 回溯题目:复原 IP 地址
  • 回溯题目:累加数
  • 回溯题目:将数组拆分成斐波那契序列
  • 回溯题目:长度为 n 的开心字符串中字典序第 k 小的字符串
  • 回溯题目:字母组合迭代器
  • 回溯题目:N 皇后
  • 回溯题目:N 皇后 II
  • 回溯题目:解数独
  • 回溯题目:24 点游戏
  • 回溯题目:构建字典序最大的可行序列
  • 回溯题目:排列序列
  • 回溯题目:给表达式添加运算符
  • 回溯题目:删除无效的括号
  • 回溯题目:单词接龙 II
  • 回溯题目:口算难题
  • 赞(0)
    未经允许不得转载:171主机测评 » 回溯的概念
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址