![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
HopCoder
这个作者很懒,什么都没留下…
展开
-
初级排序算法-选择排序、插入排序、希尔排序
选择排序选择排序思想1、假设第一个元素是最小元素,依次从后面的元素中一直到N位置,找到一个最小的元素记录下来,执行一次交换(与最小的元素)2、然后开始找第二小的元素,重复第一步(以第二个元素为最小元素,依次从向后找,直到到达N位置)。public void selectionSort(int[] a){ int length = a.length; for(int i = 0; i < length; i++){ int min = i; for(int j = i+1; j原创 2020-05-12 23:23:38 · 265 阅读 · 0 评论 -
数据结构之图论基础和深度优先与广度优先
在计算机科学中,一个图就是一些顶点的集合,这些顶点通过一系列边结对(连接)。顶点用圆圈表示,边就是这些圆圈之间的连线。顶点之间通过边连接。原创 2020-03-01 17:16:02 · 1114 阅读 · 0 评论 -
阅读java1.8 HashMap源码必须要懂的数据结构之红黑树
前面一章我们聊到了平衡二叉树,它是一种搜索效率极高的树, 但是它有一个缺点就是建树成本、 插入节点以及删除节点都需要进行 左平衡和右平衡旋转,需要消耗大量的计算资源。所以引进了红黑树,它相对平衡二叉树,牺牲了一小部分的搜索效率,但是换来了在建树、插入节点和删除节点的极大的方便。 这就是红黑树的由来。红黑树的定义它是以棵空树,或者是一个具有以下性质的树:节点非红即黑根节点是黑色所有的...原创 2020-02-28 16:39:33 · 388 阅读 · 0 评论 -
数据结构之AVL树(平衡二叉树)
什么叫AVL树 平衡二叉树?说到这个问题我们先说说二叉排序树 它也叫二叉搜索树,它解决数组和链表集合遍历和插入所有优势。但是假如我们是一个这样的树你觉得它的效率还会很高吗?如上图中 这样一棵搜索它的效率显然不高,因为除了7 其他的几个数字就类似一个链表。就因为这样的情况,所以平衡二叉树就诞生了,它是为了解决极限情况下,树的搜索效率低下的问题。那么什么样的树才叫平衡二叉树呢?作为一个平衡二...原创 2020-02-26 10:24:14 · 314 阅读 · 0 评论 -
数据结构之 Haffman编码
前面一篇博客已经介绍了什么是haffman树以及如何创建一棵haffman树。 这节我们将介绍 关于haffman树最重要的一个应用 haffman编码 它是一种压缩效率很高的算法。比如我们有这样一个字符串 ABAC BDCE DFEG FACA CCDE FG假如把这段字符串存储起来,按照UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。每个字符是8个0和1,22 *...原创 2020-02-25 16:50:18 · 438 阅读 · 0 评论 -
数据结构之Haffman树
什么是Haffman树Haffman树也叫最优二叉树,它是一种带权路径长度WPL最小的树。那么什么叫权 ? 什么叫路径长度?什么叫WPL?路径: 在一棵树中,一个结点到另一个结点之间的通路,称为路径。图 1 中,从根结点到结点 a 之间的通路就是一条路径。路径长度: 在一条路径中,每经过一个结点,路径长度都要加 1 。例如在一棵树中,规定根结点所在层数为1层,那么从根结点到第 i 层结点...原创 2020-02-25 15:02:08 · 495 阅读 · 0 评论 -
数据结构之树与栈结合-启发式寻路
1. 实际距离(f) = 实际代价(g) + 预估代价(h)如图我们从起点到终点位置需要绕开障碍物,我们实际走的距离是称为实际代价, 而中间位置到达终点位置,我们的路线不确定, 所以算作预估代价。2. 曼哈顿距离图中的红色线 就是曼哈顿距离做启发式寻路,就是从起点位置不停的找可以走的点, 然后计算实际代价和预估代价,所以预估代价需要不停的计算,这个计算的次数非常大,为了方便计算,所以预估...原创 2020-02-23 17:00:23 · 533 阅读 · 0 评论 -
数据结构必须要懂的类型之二叉排序树
1、什么是二叉排序树二叉排序树 又叫(排序树 搜索数)他是一个一棵空树,或者是一棵具有如下性质的树:1)若左子树不为空,那么左子树上面的所有节点的关键字值都比根节点的关键字值小2)若右子树不为空,那么右子树上面的所有节点的关键字值都比根节点的关键字值大3)左右子树都为二叉树4)没有重复值(这一点在实际中可以忽略)2、如何遍历二叉树中序遍历,先访问左节点,然后访问中间节点,然后在访问...原创 2020-02-23 12:09:51 · 509 阅读 · 0 评论