数据结构与算法
文章平均质量分 82
997and
这个作者很懒,什么都没留下…
展开
-
初级算法-动态规划
主要记录算法和数据结构学习笔记,新的一年更上一层楼!初级算法-动态规划一、斐波那契数二、爬楼梯三、使用最小花费爬楼梯四、不同路径五、不同路径二六、整数拆分七、不同的二叉搜索树八、0-1背包九、分割等和子集十、最后一块石头的重量十一、目标和十二、一和零十三、完全背包十四、零钱兑换二十五、组合总和四十六、零钱兑换十七、完全平方数十八、单词拆分十九、打家劫舍二十、打家劫舍二二十一、打家劫舍三二十二、买卖股票最佳时机二十三、买卖股票最佳时机二二十四、买卖股票最佳时机三二十五、买卖股票最佳时机四二十六、买卖股票最原创 2023-05-05 16:39:26 · 1141 阅读 · 1 评论 -
初级算法-贪心算法
主要记录算法和数据结构学习笔记,新的一年更上一层楼!原创 2023-05-04 13:17:17 · 523 阅读 · 0 评论 -
初级算法-回溯算法
主要记录算法和数据结构学习笔记,新的一年更上一层楼!原创 2023-04-26 17:26:40 · 565 阅读 · 0 评论 -
初级算法-二叉树
主要记录算法和数据结构学习笔记,新的一年更上一层楼!原创 2023-04-14 20:44:22 · 466 阅读 · 0 评论 -
初级算法-栈与队列
主要记录算法和数据结构学习笔记,新的一年更上一层楼!原创 2023-04-10 18:33:14 · 459 阅读 · 0 评论 -
初级算法-字符串
主要记录算法和数据结构学习笔记,新的一年更上一层楼!原创 2023-03-28 14:10:31 · 491 阅读 · 0 评论 -
初级算法-哈希表
主要记录算法和数据结构学习笔记,新的一年更上一层楼!原创 2023-03-23 09:19:29 · 596 阅读 · 0 评论 -
初级算法-链表
初级算法-链表原创 2023-03-10 09:56:46 · 333 阅读 · 0 评论 -
算法(七)- 分支界限法
分支界限法原创 2022-06-08 15:20:56 · 269 阅读 · 0 评论 -
算法(六)- 回溯算法
回溯原创 2022-06-01 11:44:08 · 333 阅读 · 0 评论 -
算法(五)- 动态规划
算法(五)- 动态规划一、二项式系数问题导入与例子二、矩阵连乘动态规划性质典型例子三、最长公共子序列(LCS)公共子序列四、0-1背包问题一、二项式系数问题导入与例子如图会有多组重复计算。如上,r=0和n=r时都不用算。如下,每列都可以多算最后一个从左至右,从上往下二、矩阵连乘多种划分方式,找出最小的一种算法复杂性:O(n3)动态规划性质典型例子三、最长公共子序列(LCS)分为连续不断型和间隔型。公共子序列公共子序列是不唯一原创 2022-05-17 23:43:16 · 883 阅读 · 2 评论 -
算法(四)-贪心算法
算法(四)-贪心算法一、贪心策略引导-活动安排问题导入与例子贪心策略-基本要素性质证明类似算法二、贪心算法实例-哈夫曼编码问题引入问题目标问题分析前缀码问题目标贪心策略贪心算法(哈夫曼编码)正确性证明小结一、贪心策略引导-活动安排问题导入与例子a1 a3 a6 a8 4个a1 a3 a7 a9 4个a1 a3 a6 a9 4个a1 a5 a7 a9 4个a2 a5 a7 a9 4个贪心策略-基本要素性质证明类似算法二、贪心算法实例-哈夫曼编码问原创 2022-03-18 19:52:01 · 609 阅读 · 1 评论 -
算法(三)-分治和递归
算法(三)-分治和递归一、导引-合并排序问题导入和例子分治的基本策略算法分析算法实现排序算法比较讨论思考类似问题的算法二、分治实例1-大整数乘法引入分治算法分治算法改进小结三、分治实例2-Strassen矩阵乘法传统的矩阵乘法strassen矩阵乘法改进四、分治实例3-线性时间选择问题引入选择问题线性时间选择问题小结五、分治实例4-棋盘覆盖问题描述分治策略时间复杂度分析小结一、导引-合并排序问题导入和例子伪代码分治的基本策略算法分析算法实现左递归 右非递归P1 理解算法,原创 2022-03-18 17:43:55 · 694 阅读 · 0 评论 -
数据结构与算法(四)-树
数据结构与算法(四)-树一、总体框架图二、树与二叉树的相关概念三、如何由遍历序列构造一棵二叉树四、线索二叉树概念五、树的存储结构六、哈夫曼树和哈夫曼编码七、将一颗树转换为二叉树八、森林转换为二叉树九、二叉树转换为森林一、总体框架图二、树与二叉树的相关概念三、如何由遍历序列构造一棵二叉树四、线索二叉树概念五、树的存储结构六、哈夫曼树和哈夫曼编码七、将一颗树转换为二叉树八、森林转换为二叉树九、二叉树转换为森林...原创 2022-03-18 16:24:39 · 253 阅读 · 0 评论 -
初级算法-数组
主要记录算法和数据结构学习笔记,新的一年更上一层楼!初级算法-数组一、删除有序数组中的重复项二、买卖股票的最佳时机Ⅱ一、删除有序数组中的重复项1.题目:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的原创 2022-03-17 19:31:40 · 2980 阅读 · 0 评论 -
数据结构与算法(三)-串
数据结构与算法(三)-串一、总体架构图改进的模式匹配算法 - KMP算法暴力模式匹配算法一、总体架构图改进的模式匹配算法 - KMP算法暴力模式匹配算法子串的定位操作通常称为串的模式匹配,他求的是子串(常称模式串) 在主串中的位置。暴力模式匹配算法BF的思想是:从主串的第pos个字符起,与子串的第一个字符比较,相等则继续比较;不等则从主串的下一个位置起,继续和子串开始比较,直到最后看是否匹配成功。以下的子串为:‘abcac’:...原创 2022-03-17 19:26:32 · 546 阅读 · 0 评论 -
数据结构与算法(二)-线性表
数据结构与算法(二)-线性表一、总体框架图(1)二、顺序表、链表顺序表vs链表头指针vs头结点带头结点vs不带头结点三、总体框架图(2)四、栈和队列栈vs队列共享栈区分循环队列是队空还是队满栈在括号匹配中的算法思想栈在通过后缀表达式求值的算法思想栈在递归中的应用队列在层次遍历的作用队列在计算机系统中的应用矩阵的压缩存储广义表数组一、总体框架图(1)二、顺序表、链表顺序表vs链表头指针vs头结点带头结点vs不带头结点三、总体框架图(2)四、栈和队列栈vs队列共享栈区分循环队列原创 2022-03-17 19:16:14 · 119 阅读 · 0 评论 -
算法(二)- 算法分析基础
算法(二)- 算法分析基础一、反证法 数学归纳法反证法数学归纳法二、算法分析基础任务评价和算法执行时间相关因素算法效率衡量方法时间复杂度估算时间复杂度的上下界时间复杂度的最好情况和最坏情况空间复杂度非递归算法分析1.仅依赖于问题规模的时间复杂度2.时间复杂度与输入实例的初始状态有关递归(推)方程的求解例子:Hanoi塔直接迭代:插入排序最坏情况下时间分析二分归并排序:迭代模型:递归树主定理:递归算法分析尝试法:快速排序列出二分检索方法的递推方程,并采用主定理方法求出其算法的时间复杂度。一、反证法 数学归纳原创 2022-03-16 21:41:18 · 1219 阅读 · 0 评论 -
算法(一)-课程导论和算法概论
算法(一)-课程导论和算法概论一、课程导论T(n)的计算方法基本的算法策略NP问题其他类型算法参考文献二、算法概论算法定义算法特征算法本质算法和程序描述算法的方式自然语言程序设计语言伪代码评价算法算法vs数据结构一、课程导论T(n)的计算方法基本的算法策略分治与递归贪心算法动态规划回溯法分支限界法NP问题概率算法近似算法其他类型算法线性规划字符串算法参考文献1.M.T. 算法设计与应用2.算法导论3.算法设计与分析基础4.王晓东:计算机算法设计与分析(第4版)5.李春原创 2022-03-16 17:20:13 · 1544 阅读 · 0 评论 -
数据结构与算法(一) - 绪论
数据结构与算法(一) - 绪论一、总体框架图线性结构非线性结构二、数的逻辑结构三、数的存储结构四、用循环比递归的效率高吗五、贪心算法和动态规划以及分治法的区别六、时空复杂度一、总体框架图线性结构线性表:栈:队列:串:数组:广义表:非线性结构树:图:集合:二、数的逻辑结构三、数的存储结构四、用循环比递归的效率高吗五、贪心算法和动态规划以及分治法的区别六、时空复杂度...原创 2022-03-16 16:48:16 · 1523 阅读 · 0 评论