算法 | hbut期末复习笔记

时间:2024-06-09 06:58:35

贪心选择策略:所求问题的整体最优解可以通过一系列局部最优的选择(贪心选择)得到

最优子结构:问题的最优解包括了其子问题的最优解

回溯法:具有限界函数的深度优先搜索法

回溯法的解空间:子集树&排列数算法框架

单源最短路径:

 渐进上界大O:

回溯法的搜索特点是什么

在解空间树上跳跃地深度优先搜索 ,即用判断函数判断x[k],如果正确,就遍历以x[k]为根节点的子树,如果x[k]取完了所有的值,就退回到x[k-1]

贪心算法的基本思想

贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。这种策略并不保证一定能得到全局最优解,但它通常可以在复杂问题中找到局部最优解,而且在某些情况下能得到全局最优解。

贪心算法的基本思想可以总结为以下几个步骤:
1. 局部最优:每次决策都是基于当前状态下的最佳选择,不考虑后续可能的影响。
2. 迭代进行:算法通常是自底向上的,从问题的简单部分开始,逐步构建解决方案。
3. 没有后见之明:算法不会回溯前面的决策,一旦做出选择,就不再改变。

虽然贪心算法简单直接,但它的有效性取决于问题的结构和特性。对于一些具有“贪心性质”的问题(即满足最优子结构和贪心选择引理),贪心算法能够得到解决方案。不过,如果问题不满足这些条件,贪心算法可能不会得到全局最优解。

阐述归并排序的分治思路。

讲数组一分为二,分别对每个集合单独排序,然后将已排序的两个序列归并成一个 含 n 个元素的分好类的序列。如果分割后子问题还很大,则继续分治,直到一个元素。

快速排序的基本思想是什么

快速排序的基本思想是在待排序的 N 个记录中任意取一个记录,把该记录放在最终 位置后,数据序列被此记录分成两部分。所有关键字比该记录关键字小的放在前一部分,所 有比它大的放置在后一部分,并把该记录排在这两部分的中间,这个过程称作一次快速排序。 之后重复上述过程,直到每一部分内只有一个记录为止。 

 什么是直接递归和间接递归消除递归一般要用到什么数据结构

 快速排序的基本思想是在待排序的 N 个记录中任意取一个记录,把该记录放在最终 位置后,数据序列被此记录分成两部分。所有关键字比该记录关键字小的放在前一部分,所 有比它大的放置在后一部分,并把该记录排在这两部分的中间,这个过程称作一次快速排序。 之后重复上述过程,直到每一部分内只有一个记录为止。

请写出 prim 算法的基本思想 

思路是:最初生成树 T 为空,依次向内加入与树有最小邻接边的 n-1 条边。处理过 程:首先加入最小代价的一条边到 T,根据各节点到 T 的邻接边排序,选择最小边加入,新 边加入后,修改由于新边所改变的邻接边排序,再选择下一条边加入,直至加入 n-1 条边