基础算法学习笔记(一)----回溯法
2007-08-16 16:31
423 查看
回溯法是一种设计精巧的蛮力搜索法。它采用了深度优先的搜索策略
基本思想
回溯法的基本思想用伪代码形式表现如下
S = {初始问题域}
WHILE s <> {} DO
BEGIN
取出S中一个元素,设为s;
IF s 可以安全使用 THEN
BEGIN
设定 s 为已使用;
IF 问题还没有解决 THEN
用缩小后的问题域让S调用自己
ELSE
问题解决,显示答案;
把s还原为未使用状态
END
END
实现关键
回溯法一般写成递归形式。在实际使用时对其优化主要是在进行选择后如何最大限度的缩小问题域。
应用举例
回溯法经典应用有:迷宫搜索,N后问题,骑士巡游,正则表达式匹配等等。在用递归实现的算法中,几乎都能看到回溯的影子。
基本思想
回溯法的基本思想用伪代码形式表现如下
S = {初始问题域}
WHILE s <> {} DO
BEGIN
取出S中一个元素,设为s;
IF s 可以安全使用 THEN
BEGIN
设定 s 为已使用;
IF 问题还没有解决 THEN
用缩小后的问题域让S调用自己
ELSE
问题解决,显示答案;
把s还原为未使用状态
END
END
实现关键
回溯法一般写成递归形式。在实际使用时对其优化主要是在进行选择后如何最大限度的缩小问题域。
应用举例
回溯法经典应用有:迷宫搜索,N后问题,骑士巡游,正则表达式匹配等等。在用递归实现的算法中,几乎都能看到回溯的影子。
相关文章推荐
- 基础算法学习笔记(一)----回溯法
- 【算法学习笔记】08.数据结构基础 二叉树初步练习1
- 【算法学习笔记】06.数据结构基础 队列与堆栈初步
- 深度学习word2vec笔记之基础篇算法篇应用篇--写的非常到位
- 【学习笔记】<算法导论>基础知识1.1
- 深度学习word2vec笔记之基础篇算法篇应用篇--写的非常到位
- 【算法学习笔记】11.数据结构基础 二叉树初步练习4
- 算法导论学习笔记 第2章 算法基础
- JAVA学习笔记:基础算法(附Java与C之间检查数组越界的差异)
- Introduction to Algorithms 算法导论 第1章 基础知识 学习笔记及习题解答
- 【算法学习笔记】11.数据结构基础 二叉树初步练习4
- 程序设计与算法(二)算法基础_北京大学 学习笔记(一)
- 【算法零基础入门】 学习笔记一 什么是数据结构
- 【算法学习笔记】08.数据结构基础 二叉树初步练习1
- 基础算法学习笔记—快速排序
- 【算法学习笔记】76.DFS 回溯检测 SJTU OJ 1229 mine
- 【算法学习笔记】07.数据结构基础 链表 初步练习
- 基础算法学习笔记—归并排序
- 【算法学习笔记】KMP算法之构造回溯表(backtrack table)的思路和技巧