![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 89
我爱刮刮乐
这个作者很懒,什么都没留下…
展开
-
一篇文章搞懂散列表
目录散列表是什么?散列表概念散列表规律散列函数基本要求散列冲突解决办法开放寻址法线性探测:二次探测双重散列链表法如何构造散列函数?开放寻址法优缺点链表法优缺点总结散列表是什么?散列表英文名叫Hash Table,散列表用的是数组支持下标随机访问的数据特性,所以散列表其实就是数组的一种扩展,有数组演化而来。散列表概念散列表中的键(key)/关键字:就是用来标示一个指定的元素对key进行hash的函数就是散列函数,就是hash(.原创 2021-01-12 13:45:11 · 598 阅读 · 0 评论 -
时间复杂度、空间复杂度
前言为了让广大读者轻松学习,完全理解内容表达含义。我会用最通俗易通的方式结合图文表达,让每位读者完全熟记每种数据结构和算法的优缺点!今天我们分享的是时间复杂度和空间复杂度,因为只要讲到数据结构与算法,就一定离不开时间、空间复杂度分析。时间复杂度首先,什么是时间复杂度?简单的讲就是指执行这个算法所需要的执行时间,分为事先统计法和事后统计法,事后统计法就是通过一些监控,指标,来评估算法的时间复杂度,但是这样算法的执行时间,会受到很多因素的影响,例如硬件、运行时环境、数据规模等。所以我们采用事前...原创 2021-01-08 11:24:03 · 90 阅读 · 0 评论 -
递归
递归什么是递归?首先递归是一种广泛的算法或者编程技巧,很多数据结构和算法的实现都依赖递归,比如DFS(深度优先遍历),二叉树的前中后序遍历等等。示例:举个简单的例子,比如排队,你排在第n个位置,具体n是多少,你不知道,所以你就问你前面一个人:“你是第几个人?”然而你前面的人也不知道他是第几个人,所以他就问他前面的人是第几个人,这样一直向前问,知道问到第一个人,然后第二个人知道自己是第二然后告诉第三个人,然后第三个人知道自己是第三,然后一直向后面这样反馈,到你这里,你也就知道自己是第几...原创 2021-01-06 13:46:37 · 115 阅读 · 0 评论 -
栈和队列
目录前言栈队列总结前言本节分享数据结构中的基础数据结构栈和队列。他们都是操作受限的线性表数据结构栈什么是栈?栈的最大特点就是先进后出(LIFO),对于栈中的数据来说,所有的操作都是在栈顶完成的,举个例子:叠盘子,盘子都是一个叠在一个上面,我们想要拿盘子,也只能从最上面的一个一个拿起来!栈实现:我们可以利用数组来实现栈结构,也可以利用一个单链表实现栈结构,用数组实现的栈结构叫做:顺序栈,用单链表实现的栈结构叫做:链式栈。因为我们只能操作栈顶元素,所以不管是链..原创 2021-01-06 13:43:06 · 159 阅读 · 0 评论 -
数组和链表
目录前言数组链表总结前言大家好,本篇我们主要分享数据结构中最基础的两种数据结构数组和链表,我们话不多开,正文开始!正文数组我们先来说说数组结构,什么是数组?数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 线性表数据结构:就是数据排列像一条线一样的结构,只有前后的方向, 连续的内存空间:就是存储数据在内存中的地址是连续的,例如存储一个长度为3的整数int[3]数组,int类型数据在内存中占4个字节,...原创 2021-01-06 13:41:02 · 300 阅读 · 0 评论