参考: https://www.cnblogs.com/g177w/p/8469399.html java数据结构 堆 1.堆:堆是一种树,由它实现的优先级队列的插入和删除的时间复杂度都是O(logn),用堆实现的优先级队列虽然和数组实现相比较删除慢了些,但插入的时间快的多了。当速度很重要且有很多插 ...
分类:
编程语言 时间:
2020-11-01 10:03:45
阅读次数:
14
数据结构::堆排序 #include <stdio.h> void swap(int array[],int x,int y){ int key; key=array[x]; array[x]=array[y]; array[y]=key; } //从大到小排序 //void Down(int ar ...
分类:
编程语言 时间:
2020-06-13 17:13:18
阅读次数:
66
疑难点:后缀表达式的入栈出栈操作 中缀,前缀,后缀表达式 ## 中缀表达式转化为前缀和后缀表达式 转化步骤: 按照运算符的优先级对所有的运算单位加括号 将运算符移动到对应括号的前面(前缀表达式)或后面(后缀表达式) 去掉括号,得到前缀或后缀表达式 示例: 中缀表达式:1+(2+3)×4-5 1)加括 ...
分类:
其他好文 时间:
2020-05-09 23:19:04
阅读次数:
51
本文介绍了堆排序的相关内容,包括其时间复杂度分析与正确性分析。 ...
分类:
编程语言 时间:
2020-05-03 16:39:15
阅读次数:
58
堆树介绍: 之前在二叉树的时候说到过一种特殊的二叉树 完全二叉树(除了最后一层,其他层的每个结点都是满的,且最后一层结点全部靠左排列,这样就可以很方便的用数组来表示,下标从0开始如果父结点索引是i那么它两个子结点的索引就是2i+1和2i+2,具体的图解见二叉树)。而堆树又是一种特殊的完全二叉树。它的 ...
分类:
编程语言 时间:
2020-05-03 00:35:02
阅读次数:
145
1、堆排序 是指利用 二叉堆 这种数据结构所设计的一种排序算法。堆是一个近似 完全二叉树 的结构,并同时满足 堆积的性质 :即子节点的键值或索引总是小于(或者大于)它的父节点。 完全二叉树的重要性质: 二叉堆分以下两个类型: 1.最大堆:最大堆任何一个父节点的值,都大于等于它左右孩子节点的值。[10 ...
分类:
编程语言 时间:
2020-03-03 22:25:59
阅读次数:
79
数据结构实验之栈与队列八:栈的基本操作 Description 堆栈是一种基本的数据结构。堆栈具有两种基本操作方式,push 和 pop。push一个值会将其压入栈顶,而 pop 则会将栈顶的值弹出。现在我们就来验证一下堆栈的使用。 Input 首先输入整数t(1 <= t <= 10),代表测试的 ...
分类:
其他好文 时间:
2020-02-26 21:04:52
阅读次数:
74
堆: 树这种结构 本身在计算机科学领域 占有很重要的地位,这种数据结构之所以占有重要的地位,不仅仅是因为二分搜索树这样的一种结构, 是树本身这种形状可以产生很多拓展,对于不同的问题 ,我们可以稍微改变 或者 限制树这种数据结构的性质,从而产生不同的数据结构,高效的解决不同的问题, 从节开始,将会有四 ...
分类:
其他好文 时间:
2020-02-24 12:39:08
阅读次数:
56
堆排序算法就是通过维护一个小根堆或者大根堆的数据结构。小/大根堆本质上是一个完全二叉树。利用了完全二叉树的性质,即完全二叉树节点x的子节点编号为2x和2x+1。 利用这个性质,我们可以让一个一维数组来模拟这个二叉树,数组下标从1开始建立,下标为2*x和2*x+1的就是x的左子树和右子树。 #incl ...
分类:
编程语言 时间:
2020-02-08 17:57:21
阅读次数:
130
1.1 基本数据结构 1. 数组 2. 链表,双向链表 3. 队列,单调队列,双端队列 4. 栈,单调栈 1.2 中级数据结构 1. 堆 2. 并查集与带权并查集 3. hash 表 自然溢出 双hash 1.3 高级数据结构 1. 树状数组 2. 线段树,线段树合并 3. 平衡树 Treap 随机 ...
分类:
其他好文 时间:
2020-01-27 19:00:01
阅读次数:
97