算法套路
文章平均质量分 68
算法学习笔记
温酒煮青梅
初级打工人
展开
-
堆排序【二叉堆简介】【二叉堆插入/删除堆顶/构造】【堆排序】【最大堆/最小堆】
文章目录0 - 前言1 - 二叉堆简介1-1 向二叉堆中插入节点(最小堆)1-2 删除堆顶节点(最小堆)1-3 将完全二叉树转化为二叉堆1-4 代码实现2 - 堆排序0 - 前言本文是对下面两篇博文做的笔记参考:【算法与数据结构】二叉堆是什么鬼?【算法与数据结构】堆排序是什么鬼?1 - 二叉堆简介二叉堆是一种完全二叉树,分为最大堆和最小堆最大堆:任意父节点的值 ≥ 左右子节点的值;堆顶(即二叉树的根节点)是堆中最大元素最小堆:任意父节点的值 ≤ 左右子节点的值;堆顶是堆中最小元素原创 2021-05-21 11:16:24 · 462 阅读 · 0 评论 -
快速排序【算法解析】【C++代码实例】
快速排序【算法解析】【C++代码实例】文章目录快速排序【算法解析】【C++代码实例】0 - 前言1 - 基本思想2 - 挖坑填数+分治法3 - 代码实例0 - 前言参考:https://www.runoob.com/w3cnote/quick-sort.html1 - 基本思想先从数列中取出一个数作为基准数(可以是数列首,也可以是队列中间)分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边再对左右区间重复第二步,直到各区间只有一个数快速排序采用分治法,分治策略为:转载 2021-04-06 10:39:09 · 858 阅读 · 0 评论 -
【算法套路】-【二分法】【左右端点的更新】
【算法套路】-【二分法】文章目录【算法套路】-【二分法】0 - 前言1 - 使用场景2 - 难点2 - 1 解决边界问题0 - 前言本文参考【代码随想录】大佬的数组:每次遇到二分法,都是一看就会,一写就废1 - 使用场景对于有序数组,使用二分法来查找是非常高效的。2 - 难点二分法的原理是非常容易听懂的,每次折中取兴趣区间。但是原理还是要好好剖析!二分法的难点就在于:1、兴趣区间的开闭;2、兴趣区间两端的更新。边界值的选择直接影响能不能写出正确的代码!2 - 1 解决边界问题主要是由两种原创 2021-03-30 21:22:48 · 433 阅读 · 0 评论 -
动态规划(二)解题步骤
动态规划解题套路文章目录动态规划解题套路与贪心区别动规套路动规debug与贪心区别借鉴【代码随想录】大佬的一句话,动态规划就是由前一个状态推导出来的;贪心是局部选取最优,与前一状态无关。动规套路确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组动规debug建议打印动规的数组,把状态转移在动规数组上的情况模拟一遍参考:https://mp.weixin.qq.com/s/ocZwfPlCWrJtVGACqFNAag.原创 2021-02-19 21:19:33 · 212 阅读 · 0 评论 -
【算法套路】-【回溯篇】【回溯三步法】
【算法套路】-【回溯篇】文章目录【算法套路】-【回溯篇】前言回溯法的意思回溯的套路前言本文是参考·【代码随想录】·大佬的关于回溯算法,你该了解这些!,希望在使用回溯算法解决问题时能够给自己一点启发回溯法的意思回溯就是一种暴力搜索方法,穷举所有的可能。回溯是递归的副产品,只要有递归就有回溯。【代码随想录】认为:回溯能够解决的所有问题都能够抽象为树形结构(多叉树)。注意,回溯法解决的是在集合中递归地查找子集,集合大小就是树的宽度,递归的深度就是树的深度。着重注意:在集合中递归查找回溯的套路与原创 2021-01-31 13:12:07 · 602 阅读 · 0 评论 -
【算法套路】-【递归篇】【递归三要素】
【算法套路】-【递归篇】文章目录【算法套路】-【递归篇】前言递归三要素前言本文参考·【代码随想录】·大佬的二叉树:一入递归深似海,从此offer是路人,希望在写递归脑子糊涂的时候,给自己一点灵光。递归三要素三要素其实就是递归的模板,按照三要素来写递归就是递归的套路。1、确定递归函数的参数和返回值:确定递归过程中需要处理的参数,明确每次递归的返回值进而确定递归函数的返回类型2、确定递归终止条件,即函数return的出口:终止条件写的不对,操作系统的内存栈一定会溢出,毕竟递归也是有限制的3、确原创 2021-01-31 11:05:12 · 2277 阅读 · 0 评论