![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 83
disgare
这个作者很懒,什么都没留下…
展开
-
动态规划算法学习笔记
dp动态规划的特性最优子结构重叠子问题动态规划的实现方法题目特点解题步骤动态规划就是根据子问题的解以得出原问题的解动态规划的特性最优子结构最优子结构规定的是子问题与原问题的关系,即原问题的最优解包含子问题的最优解,将子问题的解进行组合可以得到原问题的解是动态规划可行性的关键,在解题中一般用状态转移方程描述这种组合以及使用剪切粘贴法来证明重叠子问题重叠子问题规定的是子问题与子问题的关系,即每次子问题不会生成更多的子问题,重复子问题不是保证解的正确性必须的,但是如果递归求解子问题时,没有出现重复子问原创 2022-04-24 22:07:25 · 1547 阅读 · 0 评论 -
集合与数据结构
集合基础学习笔记List接口ArrayListLinkedListCollection集合遍历Set接口HashSetTreeSetMap接口HashMapTreeMapMap的集合遍历List接口储存的对象有序,可重复ArrayList像数组一样存储对象,每次增删都需要构建新数组,适合多次查询的情况LinkedList像链表一样存储对象,适合多次增删的情况Collection集合遍历1,使用for循环2,使用Iterator迭代器3,使用foreach方法4,使用迭代器的foreac原创 2021-03-12 20:48:17 · 1232 阅读 · 5 评论 -
算法导论第二部分排序学习笔记
排序堆排序算法思想优先队列归并排序算法思想快速排序算法思想分析及优化线性时间排序计数排序基数排序算法思想三种比较基本的排序算法:冒泡排序、选择排序(像给牌堆中的扑克牌排序一样,将之后的牌放在已经拍好序的牌堆里)、比较排序(只选择牌堆中的最大的牌放入已经排好序的牌堆后方),比较简单并且所提供的时间复杂度很高(O(n^2)),没有什么研究的意义,让我们直接从堆排序开始堆排序堆是一棵完全二叉树(不一定是满二叉树),每个节点的值都大于或等于其子节点的值,为最大堆;反之为最小堆一般用数组来表示堆,下标为 i原创 2022-04-17 11:59:35 · 559 阅读 · 0 评论 -
算法导论第一部分学习笔记
算法是处理数据的计算过程,在计算中明智的使用时间、空间等资源数据结构是储存数据的方式,主要目的是为了满足占用空间、查找速度、插入速度中的一部分循环不变式从一道有趣的题目开始布口袋中有黑,白两色小球,现将手放入袋中每次摸出两个,如果两球同色就都不放回袋中,如果两球异色就将白球放回,由于每次至少减少一个,所以袋中的球必然越来越少。现问:如果袋中最后剩下一个球,此球的颜色与开始时袋中黑、白球的个数有什么关系?按照一般的思路,此题非常复杂,难以解决。多次重复摸球及放回的动作构成了一个循环过程。如果原创 2022-03-27 19:30:45 · 527 阅读 · 0 评论 -
基于比较的排序算法的最坏情况下的最优下界为什么是O(nlogn)
1.决策二叉树回答这个问题之前我们先来玩一个猜数字的游戏,我从1到8中挑一个数字出来让你来猜,每回合你都可以问我一个问题,我的回答“是”或“不是”(1或0),那么你至少需要几个回合才能保证猜出这个数字?比较符合这个游戏精神的玩法是从自己的幸运数字(比如我的是7)开始猜起,一个一个地问我“是不是X?”,可能你的运气足够好,一个回合就能够猜对,但是在最坏的情况下可能就需要8个回合,所以你的答案应该是“至少需要8个回合”(事实上你至少只需要一次就“有可能”猜出来,但为了“保证能”猜出来,你只好委曲求全地说8),原创 2021-09-28 21:31:49 · 2525 阅读 · 0 评论