初次接触数据结构和算法还是学生时代了,初入职场的这几年在实际工作中其实用得很少,几乎忘光了。最近打算每天抽点时间,重新温习一下数据结构和算法。毕竟它们是如此的重要,是程序的灵魂——程序=数据结构+算法。
What
数据结构是相互之间存在一种或者多种特定关系的数据元素的集合,简单地说就是一组数据的存储结构。
常见的四类基本结构:
- 集合
- 线性结构
- 树形结构
- 图状结构或网状结构
算法是对待特定问题求解步骤的一种描述,是指令的有限序列,其中一条指令表示一个或多个操作。
算法的五大特征:
- 有穷性
- 确定性
- 可行性
- 输入
- 输出
算法优劣衡量标准:
- 正确性,应该满足解决问题的需求。
- 可读性
- 健壮性
- 效率与低存储需求,主要体现在时间复杂度和空间复杂度两方面。
Why
- 算法和数据结构是软件系统的核心,太重要!
- 入职名企的敲门砖
- 写出更棒的代码
- 提升大脑思考能力,进而提高个人核心竞争力
How
唯有勤学多练,多思考,多总结,多交流,适度刷题,如LeetCode、硅谷科技公司及BAT等一线科技公司的笔试题等。