数据结构和算法
文章平均质量分 93
MrTreeson
这个作者很懒,什么都没留下…
展开
-
数据结构与算法(一)——复杂度分析(上)
数据结构与算法(一)—— 复杂度分析(上) 基础知识就像是一座大楼的地基,只有打好基础,才能造成万丈高楼。数据结构与算法是一个程序员的内功,只有基础足够扎实,才能有效提高自己的技术能力,写出更高效、扩展性更好的优秀代码。写这个系列记录一下自己学习的历程,希望自己能不断学习、总结和积累数据结构与算法的知识。这个系列的总结主要参考王争老师的讲解,以及一些数据结构和算法方面的书籍。 #什么是数据结构?算...原创 2018-10-26 15:47:55 · 687 阅读 · 0 评论 -
数据结构与算法(二)——复杂度分析(下)
数据结构与算法(二)—— 复杂度分析(下) 除了前面记录的复杂度的基础知识,还有四个复杂度分析方面的知识点:最好情况时间复杂度、最坏情况时间复杂度、平均情况时间复杂度、均摊时间复杂度。 一、最好、最坏情况时间复杂度 最好情况时间复杂度,就是在最理想的情况下,执行这段代码的时间复杂度。 最坏情况时间复杂度,就是最糟糕的情况下执行这段代码的时间复杂度 先看一段代码 public int find(...原创 2018-11-03 14:02:09 · 364 阅读 · 0 评论 -
数据结构与算法(三)——数组
线性表 线性表,顾名思义,是具有像线一样的性质的表,数据排成像一条线一样的结构。线性表是零个或多个数据元素的有限序列。序列,意味着线性表的元素是有顺序的,每个线性表上的数据最多只有前和后两个方向,常见的线性表有数组、链表、队列和栈等等。而和它相对立的概念是非线性表,即数据之间不是简单的前后关系,可能是一对多甚至多对多,常见的有二叉树、堆、图等。 线性表的存储结构 线性表有两种物理结构(即存储结构)...原创 2018-11-28 13:34:13 · 274 阅读 · 0 评论 -
数据结构与算法(四)——链表
线性表顺序存储结构不足的解决 顺序结构存储最大的缺点就是插入和删除时需要移动大量元素,需要消耗很多时间,使用链式存储结构就可以解决这个问题。 前面提到数组之所以会有这个问题,是由于其需要一块连续的内存空间。而链式存储结构即链表则是通过离散的内存块来存储数据,不需要考虑相邻位置,哪里有空位就去哪里,只要每个元素都知道它的下一个元素的位置在哪里就行了。这样链表的每个元素就可以通过一组零散的内存串联起来...原创 2018-12-08 11:07:32 · 515 阅读 · 0 评论 -
数据结构与算法(五)——栈
堆栈 首先要注意的是,内存中的堆栈和数据结构中的堆栈不是一个概念,可以说内存中的堆栈是真实存在的物理区,数据结构中的堆栈是抽象的数据存储结构。 内存空间在逻辑上分为三部分:代码区、静态数据区和动态数据区,动态数据区又分为栈区和堆区。 代码区:存储方法体的二进制代码。高级调度(作业调度)、中级调度(内存调度)、低级调度(进程调度)控制代码区执行代码的切换。 静态数据区:存储全局变量、静态变量、常量...原创 2018-12-13 19:09:02 · 395 阅读 · 0 评论 -
数据结构与算法(四)——链表(算法题)
上一篇https://blog.csdn.net/MrTreeson/article/details/84890660由于篇幅有限已经解决了两道链表相关的题目,这一篇继续记录一些链表相关算法题的解题方法。注:部分解法来自leetcode讨论区高亮的答案。 环形链表 这题是leetcode上第142题:https://leetcode.com/problems/linked-list-cycle-i...原创 2018-12-09 22:13:47 · 496 阅读 · 0 评论