05 2021 档案

摘要:KMP算法 1.KMP算法的应用场景:字符串匹配问题。 假设str1 = BBC ABCBAB ABCDABCDABDE, str2 = ABCDABD,然后判断str1是否还有str2,如果存在,就返回第一次出现的位置 ,如果没有返回-1。 解法1:暴力匹配算法 假设str1匹配到i位置,字串st 阅读全文
posted @ 2021-05-19 11:11 撑起一片阳光 阅读(303) 评论(0) 推荐(0) 编辑
摘要:动态规划算法 1)动态规划算法介绍 动态规划算法核心思想:将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法。 动态规划算法与分治算法类似,将待求解的问题分解为若干个子问题,先求解子问题,然后从这些子问题的解的到原问题的解。 与分治法不同的是,适合用动态规划求解点问题,经分解得到子问题往往 阅读全文
posted @ 2021-05-18 17:00 撑起一片阳光 阅读(496) 评论(0) 推荐(0) 编辑
摘要:图 1.图的基本介绍 图是一种数据结构,其中节点可以具有零个或多个相邻元素,两个节点之间的连接称为边,结点称为顶点。如图 2.图的常用概念: 无向图:顶点之间连接没有方向,比如A-B,既可以A-B也可以B-A. 路径:比如从D → C的路径又 1)D → B → C 2)D → A → B → C 阅读全文
posted @ 2021-05-16 16:17 撑起一片阳光 阅读(180) 评论(0) 推荐(0) 编辑
摘要:多路查找树 二叉树与B树 1.二叉树的问题分析 二叉树的操作效率高,但也存在一些问题: 1)二叉树需要加载进内存,如果二叉树的结点少,没什么问题,但是如果二叉树的结点很多,就会存在如下问题: ​ ① 在构建二叉树时,需要多次进行I/O操作,结点海量,构建二叉树,速度又影响。 ​ ②结点海量,也会造成 阅读全文
posted @ 2021-05-15 15:49 撑起一片阳光 阅读(210) 评论(0) 推荐(0) 编辑
摘要:平衡二叉树 1.基本介绍 1)平衡二叉树也叫平衡二叉搜索树,又被称为AVL树,可以保证查询效率查询。 2)特点:它是一颗空树或它的左右子树的高度差的绝对值不超过1,并且左右两个子树都是平衡二叉树。 平衡二叉树的实现方法:红黑树、AVL、替罪羊树、Treap、伸展树等。 2.平衡二叉树左旋转 1)使用 阅读全文
posted @ 2021-05-13 10:47 撑起一片阳光 阅读(414) 评论(0) 推荐(0) 编辑
摘要:二叉排序树 1.二叉排序树的介绍 二叉排序树:BTS(Binary Sort Tree),对于二叉排序树的任何一个非叶子节点,要求左子节点的值小于当前节点的值,右子节点的值大于当前结点的值。如果有相同值,可以将该结点放到左边或右边。 比如:{7,3,10,12,5,1,9} 2.排序二叉树的新增 思 阅读全文
posted @ 2021-05-11 17:14 撑起一片阳光 阅读(173) 评论(0) 推荐(0) 编辑
摘要:霍夫曼树 1.基本介绍 1)给定n个权值作为n个叶子节点,构造一棵二叉树,若该树的带权路径长度(WPL)达到最小,称这样的树为最优二叉树,也称为哈夫曼树。 2)哈夫曼树是带权路径长度最短的树,权值较大的结点离根越近。 2.哈夫曼树几个重要概念和说明 1)路径和路径长度:在一棵树中,从一个结点往下可达 阅读全文
posted @ 2021-05-10 17:41 撑起一片阳光 阅读(521) 评论(0) 推荐(0) 编辑
摘要:堆排序 1.堆的基本介绍 1)堆排序是利用堆的这种数据结构设计的排序算法,堆排序是一种选择排序,最好最坏时间复杂度为O(nlogn),它是不稳定的排序。 2)堆是具有以下性质的完全二叉树:每个节点的值都大于或等于其左右孩子结点的值,称为大顶堆,注意:没要求左右孩子之间的关系。 3)每个结点的值都小于 阅读全文
posted @ 2021-05-08 16:02 撑起一片阳光 阅读(175) 评论(0) 推荐(0) 编辑
摘要:顺序存储二叉树 1.基本说明 从数据存储来看,数据存储方式和数的存储方式可以相互转换。 2.特点 1)顺序二叉树通常只考虑完全二叉树; 2)第n个元素的左子节点为2 * n + 1; 3)第n个元素的右子节点为2 * n + 2; 4)第n个元素的父节点为(n-1)/2; n为下标,从0开始。 pa 阅读全文
posted @ 2021-05-07 17:54 撑起一片阳光 阅读(489) 评论(0) 推荐(0) 编辑
摘要:二叉树 1.概念 1)每个结点最多只能有两个子节点的一种形式称为二叉树 2)二叉树的子节点分为左节点和右节点。 3)如果该二叉树的所有叶子节点都在最后一层,并且结点总数=2^n - 1,n为层数,则成为满二叉树。 4)如果该二叉树的所有叶子节点都在最后一层或者倒数第二层,而且最后一层叶子节点在左边连 阅读全文
posted @ 2021-05-07 14:42 撑起一片阳光 阅读(77) 评论(0) 推荐(0) 编辑
摘要:哈希表 1.基本介绍 散列表(Hash Table,也叫哈希表),是根据关键码值(Key Value)而直接进行访问的数据结构,也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度,这个映射函数叫做散列函数,存放记录的数组叫做散列表。 2.例题 有一个公司,当有新员工来时,要求将 阅读全文
posted @ 2021-05-06 16:45 撑起一片阳光 阅读(513) 评论(0) 推荐(0) 编辑