算法
算法导论中应该划线的地方,以及算法设计与分析课程中自己的一点笔记🦷
ZhifanSk
这个作者很懒,什么都没留下…
展开
-
贪心算法:贪心选择性和最优子结构
贪心选择性 每一步贪心选出来的一定是原问题的最优解的一部分最优子结构 每一步贪心选完后会留下子问题,子问题的最优解和贪心选出来的解可以凑成原问题的最优解如果问题的最优解包含两个或更多子问题的最优解,且子问题多有重叠,我们考虑使用动态规划算法。而如果问题经过贪心选择后,只剩下一个子问题,且具有优化子结构,那么可以使用贪心算法。活动选择问题 哈夫曼编码 HUFFMAN 01背包 生成哈夫曼树 最小生成树 kruskal原创 2020-04-26 11:46:46 · 11881 阅读 · 1 评论 -
算法导论笔记
算法导论 笔记 CLRS Notes Introduction to algorithm 算法设计与分析 算法基础 学习算法 算法入门原创 2020-03-07 16:15:25 · 232 阅读 · 0 评论 -
什么时候考虑使用分治算法
什么时候考虑采用分治算法 divide and conquer algorithm 耗时少又能解决问题的merge 简化重复计算 最大子数组问题 最近点对问题(二维欧几里得距离) 找数组中数量过半的那个元素,不存在序关系,只能比较是否相同 大整数乘法 矩阵乘法的Strassen乘法 快速幂原创 2020-03-17 18:12:01 · 649 阅读 · 0 评论 -
动态规划的条件、步骤、证明及几个例子
使用动态规划的条件:优化子结构:问题的优化解包含子问题的优化解重叠子问题:在问题求解的过程中,很多子问题的解将被多次使用步骤:1. 分析问题,判断是否具有:最优子结构、重叠子问题2. 给出递归公式(这个递归公式应该指明了一个数组自下而上的计算方法)3. 依据递归公式写出动态规划的伪代码钢条切割问题 矩阵链乘问题 最长公共子序列 LCS 最优二叉搜索树编号动态规划 划分动态规划 数轴动态规划 前缀原创 2020-04-23 19:18:20 · 2035 阅读 · 0 评论 -
中位数和顺序统计量:最值问题的更优算法、最坏时间为线性的选择算法
最值问题 最坏时间为线性的选择算法找到最大值:逐一比较n−1n-1n−1同时找到最大值和最小值:两两比较,再与不变量比较2n−22n-22n−2 →\rightarrow→ 3⌊n/2⌋3 \lfloor n/2 \rfloor3⌊n/2⌋找到次大值或次小值:锦标赛,注意记录n+⌈lgn⌉−2n+\lceil lgn \rceil -2n+⌈lgn⌉−2最坏时间为线性的选择算法O(n)O(n)O(n)...原创 2020-04-09 15:17:21 · 359 阅读 · 0 评论