随笔分类 -  算法导论

研一必修课
摘要:基本概念 二分图 一个二分图是一个无向图 G=(V,E),其中 V 可以划分为 2 个集合 V1V2,且对于任意条边 (u,v)E,都有 uV1vV2,或者 vV1uV2 树 令 $G= 阅读全文
posted @ 2023-02-12 17:02 FireOnFire 阅读(93) 评论(0) 推荐(0) 编辑
摘要:基本概念 摊还分析也称平摊分析,用于总体考虑分析问题,通过 n 次操作来计算平均代价。 与平均情况分析的区别:平摊分析不涉及到概率,保证其平摊性能是每个操作在最坏情况下具有的平均性能。 三种平摊分析技术: 聚合分析(Aggregate analysis) 先求出操作序列里所有操作 n 个的总 阅读全文
posted @ 2023-02-10 22:07 FireOnFire 阅读(145) 评论(0) 推荐(0) 编辑
摘要:多阶段决策问题 求解的问题可以划分为一系列相互联系的阶段,在每个阶段都需要作出决策,且一个阶段决策的选择会影响下一个阶段的决策,从而影响整个过程的活动路线,求解的目标是选择各个阶段的决策使整个过程达到最优。 基本概念 阶段:把所给的问题的求解过程恰当地划分为若干个相互联系的阶段 状态:表示每个阶段开 阅读全文
posted @ 2023-02-09 09:56 FireOnFire 阅读(81) 评论(0) 推荐(0) 编辑
摘要:基本思想 将所有的解按照一定结构排列,再进行搜索。一般解空间构造成树状结构,用深度优先搜索策略。 针对所给问题,定义问题的解空间。 确定易于搜索的解空间结构。 以深度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索。 常用的剪枝函数: 用约束函数在扩展结点处剪去不满足约束的子树。 用限界函数 阅读全文
posted @ 2023-02-08 13:27 FireOnFire 阅读(137) 评论(0) 推荐(0) 编辑
摘要:维护堆 主要思想 比较 A[i],A[Left(i)]A[Right(i)] 的大小 如果 A[i] 不是最大的,则将其与比较大的孩子节点进行交换 在堆中继续向下比较和交换,直到 i 节点为根的子树是一个大顶堆 伪代码 Max-Heapify(A, i, n) { l = Le 阅读全文
posted @ 2023-02-05 21:18 FireOnFire 阅读(59) 评论(0) 推荐(0) 编辑
摘要:效率分析 迭代法 求n! int fact(int n) { if(n <= 1) return 1; else return n * fact(n-1); } 递归关系式: $$ T(n)= {1,n=1 T(n1)+1,n>1 $ 阅读全文
posted @ 2023-02-04 16:46 FireOnFire 阅读(75) 评论(0) 推荐(0) 编辑
摘要:算法概念 算法是若干指令的有穷序列,满足以下性质: 输入:外部量作为输入 输出:至少产生一个量 确定性:每条指令是无歧义的 有限性:每条指令的执行次数和时间是有限的 可行性: 能够有效解决问题的 算法分析 算法分析是指对算法所需的时间和空间等资源进行预测。 算法复杂性 = 算法所需要的计算机资源。 阅读全文
posted @ 2023-02-02 20:07 FireOnFire 阅读(118) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示