![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
数据结构与算法
Handsome-Zan
这个作者很懒,什么都没留下…
展开
-
05、链表
1. 概念(是什么) i.常见链表结构 单链表 链表通过指针将一组零散的内存块串联在一起,把内存块称为链表的“结点”。为了将所有的结点串起来,每个链表的结点除了存储数据之外,还需要记录链上的下一个结点的地址。如图所示,把记录下个结点地址的指针叫作后继指针 next。 头结点:第一个结点,用来记录链表的基地址。可以用于遍历整条链表 尾结点:最后一个节点,指针不是指向下一个结点,而是指向一个空地址 NULL,表示这是链表上最后一个结点。 插入、删除操作 只需要考虑相邻结点的指针改变,...原创 2020-08-05 23:48:48 · 288 阅读 · 0 评论 -
04、数组
概念(是什么) 数组 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 线性表(Linear List) 线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。其实除了数组,链表、队列、栈等也是线性表结构。 非线性表 之所以叫非线性,是因为,在非线性表中,数据之间并不是简单的前后关系。比如二叉树、堆、图等。 连续的内存空间和相同类型的数据 正是因为这两个限制,它才有了一个堪称“杀手锏”的特性:“随机访问”。但有利就有原创 2020-08-03 23:42:05 · 268 阅读 · 0 评论 -
03、时间、空间复杂度分析(下)
四个复杂度分析知识点 最好情况时间复杂度(best case time complexity) 最坏情况时间复杂度(worst case time complexity) 平均情况时间复杂度(average case time complexity) 均摊时间复杂度(amortized time complexity) 最好、最坏情况时间复杂度 最好情况时间复杂度:在最理想的情况下,执行这段代码的时间复杂度 最坏情况时间复杂度:在最糟糕的情况下,执行这段代码的时间复杂度 举个小栗子: .原创 2020-08-01 22:43:53 · 153 阅读 · 0 评论 -
02、时间、空间复杂度分析(上)
什么是复杂度分析? 数据结构和算法本身是让代码运行得更快,让代码更省空间,提升代码执行效率。 因此需从执行时间和占用空间两个维度来评估数据结构和算法的性能。 分别用时间复杂度和空间复杂度两个概念来描述性能问题,二者统称为复杂度。 复杂度描述的是算法执行时间(或占用空间)与数据规模的增长关系。 为什么要进行复杂度分析? 和性能测试相比(依赖测试环境——硬件;受数据规模影响较大),复杂度分析有不依赖执行环境、成本低、效率高、易操作、指导性强的特点。 掌握复杂度分析,将能编写出性能更优的代码,有.原创 2020-08-01 00:02:57 · 201 阅读 · 0 评论 -
01、如何系统高效地学习数据结构与算法?
为什么学习数据结构和算法? 直接好处是能够有写出性能更优的代码。 训练逻辑思维提升看待问题的深度,解决问题的角度就会完全不一样。 什么是数据结构?什么是算法? 数据结构:指的是“一组数据的存储结构” 算法:指的是“操作数据的一组方法”。 数据结构是为算法服务的,算法是要作用在特定的数据结构上的。 ...原创 2020-07-30 21:50:17 · 181 阅读 · 0 评论