2022
06-29
06-29
一文学会数据结构-堆
目录1.堆2.堆的实现2.1堆的向下调整算法(建小堆)2.2堆向下调整算法(建小堆)实现2.3堆的向上调整算法2.4向上调整算法(建小堆)实现2.5数组建堆算法(建小堆)2.6数组建堆算法(建小堆)实现2.7堆排序(降序)2.8堆排序(降序)实现2.9建堆的时间复杂度1.堆大根堆:所有父节点大于等于孩子节点小根堆:所有父节点小于等于孩子节点堆的性质:•堆中某个节点的值总是不大于或不小于其父节点的值•堆总是一棵完全二叉树2.堆...
继续阅读 >
目录一、概念1、栈的定义2、栈顶3、栈底二、接口1、可写接口1)数据入栈2)数据出栈3)清空栈2、只读接口1)获取栈顶数据2)获取栈元素个数3)栈的判空三、栈的顺序表实现1、数据结构定义2、入栈1、动画演示2、源码详解3、出栈1、动画演示2、源码详解4、清空栈1、动画演示2、源码详解5、只读接口6、栈的顺序表实现源码四、栈的链表实现1、数据结构定义2、入栈1、动画演示2、源码详解3、出栈1、动画演示2、源码详解4、清空栈1、动画...
目录一、什么是并查集二、并查集解析2.1、初始化2.2、并union(inta,intb)2.3、查search(inta)三、优化四、代码实现五、结语一、什么是并查集对于一种数据结构,肯定是有自己的应用场景和特性,那么并查集是处理什么问题的呢?并查集是一种树型的数据结构,用于处理一些不相交集合(disjointsets)的合并及查询问题,常常在使用中以森林来表示。在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素...
老规矩,先抛结论后验证string:有点像java的hashMap,存的时候什么key,取的时候也什么key,常用于做缓存,保存用户信息、查询列表等;hash:这个有点像hashMap的value又套了个hashMap,下文有举例,一看就明白了;list:有序列表,类似Java的linkedList,可以在左边右边插入数据;set:去重集合,类似Java的hashset,可用于求交集,比如共同好友;zset:带权重的set集合,可用于做排行榜;为了方便理解,我们基于这个dog类来做测...
Redis有5个基本数据结构,string、list、hash、set和zset。它们是日常开发中使用频率非常高应用最为广泛的数据结构,把这5个数据结构都吃透了,你就掌握了Redis应用知识的一半了。string首先我们从string谈起。string表示的是一个可变的字节数组,我们初始化字符串的内容、可以拿到字符串的长度,可以获取string的子串,可以覆盖string的子串内容,可以追加子串。Redis的字符串是动态字符串,是可以修改的字符串,内部结构实现上类...
折半查找技术,也就是二分查找,通常称为二分法查找。它的前期是线性表中的记录必须是关键码有序(通常从大到小有序),线性表必须采用顺序存储、折半查找的基本思想是:取中间记录作为比较对象,若给定值与中间记录的关键字,则在中间记录的关键字相等,则查找成功;若给定值小于中间记录的做半,去继续查找;若给定值大于中间记录的关键字,则在中间记录的右半区继续查找。不断重复上述过程,直到查找成功,或所有查找区域无记录...
本文主要介绍了数据结构中的八大排序算法,利用Python分别将他们进行实现。前言八大排序,三大查找是《数据结构》当中非常基础的知识点,在这里为了复习顺带总结了一下常见的八种排序算法。常见的八大排序算法,他们之间关系如下:排序算法他们的性能比较:性能比较下面,利用Python分别将他们进行实现。直接插入排序算法思想:直接插入排序直接插入排序的核心思想就...
关于二叉树二叉树作为树的一种,是一种重要的数据结构,也是面试官经常考的东西。昨天看了一下关于树中的面试题,发现二叉树中的面试题比较常见的题型大概有下面几个:创建一颗二叉树(先序,中序,后序)、遍历一颗二叉树(先序,中序,后序和层次遍历)、求二叉树中叶子节点的个数、求二叉树的高度、求二叉树中两个节点的最近公共祖先、打印和为某一值的全部路径、求某一节点是否在一个树中等等。再详细的说这些面试题之前,不...