一、前言
最近觉得压力好大,又没有论文,也没有实习,所以也对毕业都有了压力,自己真的好菜,但是还是得努力前行。
为了找工作就必须有些真本事,刷题遇到困难,发现什么都不会,原来问题的根源就是自己数据结构根本都没有概念。而且因为这个问题,我正常的专业的学习也收到了影响,而不仅仅是刷题受阻。
那现在就开始学习,这个帖子用来记录,加油!
看了知乎的一个主题:**如何在最短的时间内搞定数据结构和算法,应付面试?**觉得 还蛮有启发,结合一些问答记录整理一下,变成自己的东西。
1.1 自我定位
首先要明白自己是个什么水平,如下图
很明显,我就是个算法小白,对那些排序算法也就是听过而已,真的菜,差距太大了!
所以再根据知乎上的回答我发现:
没错,需要稍微系统性的学习一下,但是我现在时间很少,没时间那么系统的跟着视频学习啊!那一定就要有策略和效率!
所以针对我这个小白,我的计划如下:
1.2 小白数据结构的救赎
- 快速过一遍数据结构的框架(5月11日)
- 同时找一本书,我这里看的是程杰《大话数据结构》,目的也是迅速的过一遍概念(5月12日)
- 刷LeetCode上的题(之后再LeetCode刷题每天记录)(5月12日开始)
没错,就这么简单,加油!
【备注】:在学习的时候需要输出和记录,就彻底用这个帖子完成吧,我真的不想当咸鱼了!
以上为口水
—————————————————【分割线】—————————————————
以下为干货
二、正文
2.1 什么是数据结构
- 定义一:简单说,数据结构就是一个容器,以某种特定的布局存储数据。这个“布局”使得数据结构在某些操作上非常高效,在另一些操作上则不那么高效。你的目标就是理解数据结构,这样就能为手头的问题选择最优的数据结构。
- 定义二:相互之间存在一种或多种特定关系的数据元素的集合
- 经典公式:程序设计 = 数据结构 + 算法
2.2 常用的数据结构(8种)
2.2.1 数组
2.2.2 堆栈
2.2.3 队列
2.2.4 链表
2.2.5 树
2.2.6 图
2.2.7 字典树
2.2.8 哈希表
上面基本总结了常用八种数据接个欧的一些特点以及面试中常见的问题,基本算是全局性的了解了一下,明天再稍微具体一点的了解一下!细致一点!
下面是一张总的XMIND总结图
【后续】总结基本上差不多了,剩下的任务就是要好好理解和揣摩各种常用的数据结构。再配合Leetcode去感受。
学习要有重点: