![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法和数据结构(新)
根据算法导论等书目
Lpy_Now
学计算机的普通人,写点自己学过的东西来记录自己的经过
展开
-
树和二叉树
树和二叉树题目重点1.无法确定树或者二叉树的形状,自然而然也无法确定只有一个子节点的子树有多少2.先序中序后序序列是对于根节点而言的,叶子结点的顺序保持不变3.对于一个有N个结点、K条边的森林,可以确定它共有几棵树4.对于哈夫曼树,越远离根节点,任一非叶子结点的权值等于自己孩子的节结点权值之和,大于等于下一层任一结点的权值5.任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序不发生改变...原创 2020-12-11 13:47:23 · 295 阅读 · 0 评论 -
数组和广义表
数组和广义表文章目录数组和广义表1.广义表 ( (a, b), c, d, e) 的表头和表尾分别是(C)。2.广义表是一种(B)数据结构。3.一个广义表为 ( a, (b, c), d, (), ((f, g), h) ),则该广义表的长度与深度分别为(D)。4.广义表与稀疏矩阵都是线性表的扩展,它们的共同点为(D)。5.广义表L = (a,(a,b),c,d,((i,j),k))的长度和深度为(D)。6.适用于压缩存储稀疏矩阵的两种存储结构是:(B)7.稀疏矩阵在计算机中通常采用(D)来表示。8.稀疏原创 2020-12-10 17:40:23 · 1124 阅读 · 1 评论 -
KMP算法
KMP算法文章目录KMP算法1.实现过程图2.部分匹配表的计算3.代码实现KMP算法是常用的字数穿查找匹配算法指以,以下对此算法的介绍源于阮一峰的博客(部分摘自阮一峰老师的博客)1.实现过程图举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?首先字符串“BBC ABCDAB ABCDABCDABDE”的第一个字符与搜索词“ABCDABD”的第一个字符,进行比较,因为B与A不匹配,所以搜索词后移一位因为B和A不匹配,所原创 2020-12-09 11:33:50 · 301 阅读 · 0 评论 -
栈和队列
栈和队列1.队列 定义:形如我们排队买票,第一个站队的人第一个买票一样,一个可以控制变量先进先出的结构体里,我们称之为队列 队列是一种特殊的线性结构,它只允许在队列的首部删除,称之为出队,队列尾部插入,称之为入队,当队列中没有元素的时候,我们称之为空队列 队列的应用是在SPFA算法或者BFS等需要先来先走的情况(比如扩展节点等)2.栈 定义:栈又名堆栈,它是一种运算受限的线性表,其限制是仅允许在表的一段进行插入和删除运算,这一端被称为栈顶,相对的,把另一端称为栈底,向一个栈插入新元素称原创 2020-12-08 17:55:20 · 156 阅读 · 0 评论 -
算法时空复杂度分析
文章目录算法时空复杂度分析0.为什么要学习算法时空复杂度分析1.理论2.分析方法3.大O复杂度表示法4.多项式量级复杂度5.时间复杂度分析的简单规则6.两种时间复杂度7.常见的时间复杂度8.空间复杂度分析9.不同情况下的复杂度分析10.算法时间复杂度与数据规模11.总结算法时空复杂度分析0.为什么要学习算法时空复杂度分析算法的复杂度估算是计算机中很重要的一块内容,通过复杂度分析我们可以估算程序和算法的运行时间,使用内存,随着输入数据的规模变大的增长规律,从而分析一个算法的优劣算法分析在竞赛中的实际意原创 2020-09-01 20:29:55 · 3234 阅读 · 0 评论 -
基础算法——高精度算法,最全详解,直播讲义
本套课件于2020年4月17日直播使用,直播回顾链接如下:b站直播回顾:链接油管直播回顾:链接上面直播回顾有最全面的讲解,欢迎前去观看...原创 2020-05-09 17:23:49 · 350 阅读 · 0 评论 -
分治算法——快速幂(平方求幂)
分治算法——快速幂(平方求幂)什么是快速幂呢,我们先来看维基百科对快速幂的解释:在数学和程序设计中,平方求幂(英语:exponentiating by squaring)或快速幂是快速计算一个数(或更一般地说,一个半群的元素,如多项式或方阵)的大正整数幂的一般方法。这些算法可以非常通用,例如用在模算数或矩阵幂。对于通常使用加性表示法的半群,如密码学中使用的椭圆曲线,这种方法也称为double...原创 2020-04-12 00:26:31 · 3663 阅读 · 2 评论 -
分治算法——二分查找法
分治算法——二分查找法分治算法在维基百科中的解释如下:在计算机科学中,分治法是建基于多项分支递归的一种很重要的算法范式。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(归并排序、快速排序)、傅立叶变换(快速傅立叶变换)。另一方面,理解及设计分治法算...原创 2020-04-05 23:13:46 · 7382 阅读 · 0 评论