算法
文章平均质量分 72
欲摘星辰
新手
展开
-
LRU算法
LRU缓存机制struct DListNode{ int key,value; DListNode* pre,*next; DListNode():key(0),value(0),pre(nullptr),next(nullptr){} DListNode(int _key,int _value):key(_key),value(_value),pre(nullptr),next(nullptr){}};class LRUCache {public: LR原创 2021-05-15 22:28:00 · 108 阅读 · 0 评论 -
回溯算法
文章目录1. 算法思想2. 应用1. 算法思想回溯是一个带有系统性又带有跳跃性的搜索法,其基本思想是,按照深度优先策略从根节点出发,搜索解空间树,当搜索到任意节点时,先判断结点是否包含问题的解,如果不包含,则跳过以该节点为根的子树的搜索,逐层向根节点回溯,并搜索玩根节点的所有子树才结束,而如果只求问题的一个解,则只要搜索到问题的一个解就结束。2. 应用...原创 2021-05-06 23:52:24 · 174 阅读 · 0 评论 -
动态规划
文章目录1. 算法思想2. 应用1. 算法思想动态规划和贪婪算法类似,也是将问题的求解过程看成一系列决策的过程。不同的是,贪婪算法中每一次根据贪婪准则做出的决策时一个不可撤回的决策,而动态规划中的每一步决策还要考虑每个最优决策序列中是否包含一个最优子序列,因此动态规划通常用于求解一个问题在某种意义下的最优解。2. 应用...原创 2021-05-05 19:46:41 · 94 阅读 · 0 评论 -
分而治之
文章目录1. 算法思想2. 应用2.1 归并排序2.2 快速排序1. 算法思想分而治之的思想类似于软件的模块化设计方法,它将一个大问题分解成多个小问题,然后由小问题的解获得大问题的解。通常,由分而治之算法所得到的小问题与原来的大问题具有相同的类型,因此当分解后的小问题相对而言还是较大是,可根据需要对小问题继续采取分而治之的方法来求解,由此可见,分而治之算法可通过递归方式来实现。2. 应用2.1 归并排序对n个元素进行排序:若n=1则排序终止,否则将这个序列分为两个子序列,再对每一个子序列进行排序原创 2021-05-05 12:57:48 · 159 阅读 · 0 评论 -
贪心算法
文章目录1. 算法思想2. 应用2.1 例1:跳跃游戏1. 算法思想贪心算法是采用逐步构造最优解的问题解决方法,即在每个阶段都做出在当前状态下看上去最优的选择,并希望通过每次的贪心选择而使最终结果是问题的最优解。其中,做出贪婪选择的依据称为贪婪准则。贪心算法并不一定保证能得到最优解,但在很多情况下确实能达到预期的结果或者与预期的效果或者最优解很接近。2. 应用2.1 例1:跳跃游戏https://leetcode-cn.com/problems/jump-game-ii/思路分析:运用贪心的思原创 2021-05-04 20:44:02 · 1191 阅读 · 0 评论 -
查找算法
文章目录1. 静态查找表2. 动态查找表2.1 二叉排序树2.2 平衡二叉树(AVL树)2.3 红黑树2.4 B 树2.5 B+树3. 散列(哈希)表查找3.1 散列表和散列方法3.2 常用散列函数3.3 处理冲突的办法3.4 散列表的查找分析3.5 散列表的操作1. 静态查找表2. 动态查找表2.1 二叉排序树2.2 平衡二叉树(AVL树)2.3 红黑树2.4 B 树2.5 B+树3. 散列(哈希)表查找3.1 散列表和散列方法3.2 常用散列函数3.3 处理冲突的办法3.4 散列原创 2021-05-01 21:34:20 · 342 阅读 · 0 评论 -
排序算法
文章目录1. 插入排序2. 交换排序3. 选择排序4. 归并排序5. 分配排序6. 其他排序7.各种内排序比较8. 外排序1. 插入排序2. 交换排序3. 选择排序4. 归并排序5. 分配排序6. 其他排序7.各种内排序比较8. 外排序...原创 2021-05-01 21:30:15 · 62 阅读 · 0 评论