![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
文章平均质量分 95
数据结构与算法基础知识讲解
敲键盘的喵
热爱编程的大学生
展开
-
<stl系列>哈希表详解,掌握stl容器从现在开始
哈喽,小伙伴们大家好,今天我们来学习几个新的容器。这几个容器存储和查找数据效率是非常高的,能达到非常理想的O(1),这主要因为它们采用了哈希的思想。那么事不宜迟,我们一起来看看吧。一、unordered系列关联式容器c++中容器分为序列式容器和关联式容器。所谓序列容器,就是以线性排列来排列某种类型的数据,比如vect,list,dequene。序列式容器通常只是单纯的用来存储数据。原创 2022-09-22 20:33:02 · 1688 阅读 · 1 评论 -
AVL树和红黑树
哈喽,小伙伴们大家好。之前我们介绍了二叉搜索树用于搜索数据,但是二叉搜索树具有一些缺陷,比如在大多数节点的子节点都只有一个时,那搜索二叉树就会近似成一条线,搜索的时间复杂度就会从O(logN)退化成O(N)。针对这个问题,一些人对二叉搜索树进行了升级改造,也就是我们今天要学习的AVL树与红黑树。一、AVL树我们定义AVL树的节点时,不但有左右指针,为了方便还增加了父节点的指针。其中bf代表平衡因子。//banlance factor 平衡因子。原创 2022-09-18 13:45:07 · 945 阅读 · 0 评论 -
<stl系类> map和set详解,掌握stl容器从现在开始
哈喽,小伙伴们大家好。今天我们继续来学习STL容器,今天我将主要介绍map和set的使用。话不多说,拿好小本本,我们赶快开始吧。一、关联式容器1、关联式容器概念在之前我们接触过STL的部分容器,比如vector,deque,list。这些容器统称为序列式容器,底层为线性结构,存储的是元素本身。那什么是关联式容器呢?关联式容器也是用来存储数据的,与序列式容器不同的是,关联式容器中存储的结构的键值对,有助于数据检索。...原创 2022-08-25 13:16:08 · 649 阅读 · 2 评论 -
搜索二叉树详解
哈喽,小伙伴们大家好。今天我来给大家介绍一种新的二叉树结构——搜索二叉树。搜索二叉树是后面学习AVL树和红黑树的基础,学好它对于后面学习一些复杂的数据结构很有帮助。那么事不宜迟,我们赶快开始吧。原创 2022-08-21 19:44:30 · 872 阅读 · 0 评论 -
<STL系列>,stack和queue详解,掌握STL容器从现在开始
哈喽大家好,今天我们继续来学习STL的容器。本章主要讲解STL中栈和队列的相关知识,小伙伴们快拿好笔记本,让我们一起开始吧。一、stack的介绍和实现(1)stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。(2)stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素。empty判空操作back获取尾部元素操作push_back尾部插入元素操作empty{...原创 2022-07-17 20:46:14 · 500 阅读 · 5 评论 -
最常用的几大排序汇总
目录前言一、常见的排序方法二、插入排序1.插入排序的思想2、直接插入排序2.1直接插入排序的实现2.2插入排序特点 3、希尔排序3.1希尔排序介绍 3.2希尔排序实现三、选择排序 1、基本思想2、直接选择排序 3、堆排序四、交换排序1、冒泡排序2、快速排序2.1快速排序单趟排序的实现方法2.2快速排序优化2.3快递排序的非递归写法五、归并排序1、归并排序概念2、归并排序的递归实现 3、归并排序的非递归实现 六、非比较排序七、排序算法复杂度和稳定性分析 总结哈喽,小伙伴们大家好。排序一直是算法中的一个重要内容原创 2022-07-12 14:05:54 · 2205 阅读 · 2 评论 -
<STL系列>string类详解,掌握STL容器从这篇文章开始
前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示.........原创 2022-05-19 10:52:53 · 751 阅读 · 4 评论 -
<stl系列>,vector深度剖析,掌握stl容器从这篇文章开始
目录前言一、vector的介绍二、vector的使用1.基本函数接口2、迭代器失效2.1案例一2.2案例二三、vector的模拟实现1、核心框架图例2、核心框架接口模拟实现 3、使用memcpy拷贝问题总结哈喽,小伙伴们大家好。上一篇文章我们介绍了string类,和string一样,vector同样是stl容器的重要组成部分,那么今天就让我们一起来学习一下吧。vector学习时一定要学会查看文档:vector的文档介绍,vector在实际中非常的重要,在实际中我们熟悉常见的接口就可以,下面列出了哪些接口是要原创 2022-07-09 13:58:19 · 331 阅读 · 8 评论 -
二叉树详解
目录前言一、树的概念和结构1、树的概念2、树的表示 3、树在实际中的应用(表示文件系统的目录树结构)二、二叉树概念及结构1.概念 2、特殊的二叉树3、二叉树的性质4、二叉树的存储4.1顺序存储4.2链状存储 三、二叉树的顺序结构和实现1、二叉树的顺序结构2、堆的概念及结构3、堆的实现3.1堆的代码框架3.2堆的插入3.3堆的删除3.4堆的建立 3.5建堆的时间复杂度 4、堆的应用4.1堆排序 4.2TOP-K问题四、二叉树链式结构的实现 1、建二叉树2、二叉树的遍历2.1前序、中序以及后序遍历2.2层序遍历原创 2022-07-09 13:48:50 · 52977 阅读 · 8 评论