![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 83
熊猫拍板砖
这个作者很懒,什么都没留下…
展开
-
三、链表
链表和数组的区别单链表数组:连续的内存空间链表:通过“指针”将一组零散的内存串联起来(单链表,双向链表,循环链表)内存块称为链表的“结点”,为了把所有的节点串联起来,每个链表的结点除了存储数据,还会记录链上的下一个结点的地址,这个记录结点地址的指针叫 后继指针 next。第一个结点叫头结点,最后一个是尾结点,尾结点指针指向空地址(这是为了防止尾结点的后继指针next 成为一个野指针,导致遍历链表停不下来,或者出现一堆本不属于该链表的垃圾数据等)插入、删除• 插入、删除一个结点,只要改变相邻原创 2021-03-11 20:35:52 · 74 阅读 · 0 评论 -
二、数组
什么是数组?数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据 线性表:数据排成像一条线一样的结构(数组、链表、队列、栈) 连续的内存空间和相同的数据类型:因为这两个限制,数组有“随机访问”的特性,但是让数组的很多操作变得低效,如 删除、插入,为了保证连续性,需要大量数据搬迁非线性表 :数据之间并不是简单的前后关系,如 二叉树、堆、图等访问数组元素的原理如 一个长度为10 的 int 类型数组Java:int[] a = new int原创 2021-03-10 18:14:53 · 74 阅读 · 0 评论 -
一、复杂度分析
为什么要复杂度分析?不依赖测试环境 不受数据量影响大 O 复杂度表示法算法执行效率算法代码执行时间复杂度公式 T(n)=O(f(n))解释:T(n) 表示代码执行时间,n 表示数据规模大小 f(n) 表示每行代码执行的次数总和 O 表示代码的执行时间 T(n) 和 f(n) 表达式成正比大 O 时间复杂度实际上并不代表代码真正的执行时间而是表示代码执行时间随数据规模增长的变化趋势,所以也叫 渐进时间复杂度,简称 时间复杂度时间复杂度分析只关注...原创 2021-03-10 18:13:12 · 221 阅读 · 0 评论