算法和数据结构
BraveWangDev
11年开发经验、全栈工程师;2023年更新计划已确定,希望能与大家共同进步;
展开
-
数据结构与算法-复杂度分析
一,前言 数据结构和算法主要用来解决如何让代码运行的更快,更省存储空间 更快:代码的执行效率是考核算法的一个重要指标 更省:假定在有限的资源条件下(如内存空间),如何实现代码逻辑 更快指的是时间上,而更省指的则是空间上 学习一段数据结构和算法就会发现一切都是在用空间换时间,或用时间换空间 这就需要掌握复杂度分析的方法 复杂度分析是整个算法和数据结构的精髓 复杂度分析分为时间复杂度分析和空间复杂度分...原创 2019-04-15 23:50:55 · 382 阅读 · 0 评论 -
数据结构与算法-最好、最坏、平均、均摊时间复杂度
一,前言 上一篇介绍了复杂度分析 但是,同一段代码在不同的输入情况下,复杂度量级有可能是不一样的 例如:在大小为n的数组中查找一个数值, 那么这个数有可能出现在数组的第1个位置,也有可能出现在数组的最后一个位置 他们时间复杂度分别是O(1)和O(n) 所以需要引入另外4个时间复杂度分析: 最好情况时间复杂度 最坏情况时间复杂度 平均情况时间复杂度 均摊时间复杂度 其中,最好,最坏情...原创 2019-04-16 18:15:24 · 1260 阅读 · 0 评论 -
数据结构与算法-数组
一,前言 前面介绍了复杂度分析 这篇开始正式介绍数据结构和算法,首先介绍数组 不管你正在使用的是哪种编程语言,数组都是其最基础的数据结构 二,数组Array 数组是一种线性表数据结构,使用一组连续的内存空间来存储相同类型的数据 从上边可以看出数组有两个特点: 1,线性表数据结构 2,使用连续的内存空间存储相同类型的数据 数组的优势: 因为数组具有上述两个数据结构特点,所以数组天然支持"随机访...原创 2019-04-18 10:57:03 · 586 阅读 · 0 评论 -
数据结构与算法-链表
一,前言 上一篇介绍了常用数据结构-数组 除了数组,还有一种常用的数据结构叫做链表 这一篇就来介绍一下链表 二,链表 对比数组来研究链表 数组需要一段连续的内存空间来存储 链表不需要连续的内存空间,仅通过“指针”将一块一块零散的内存串连在一起 分析: 如果我们有50M的的可用内存空间,那么对于数组,由于这50M空间在内存中未必是连续的 所以申请50M大小的数组未必能成功,但如果使用链表数据结...原创 2019-04-19 18:21:32 · 282 阅读 · 0 评论