了解真相、你才能获得真正的自由、而不只是死记规则
定位:
- 并无官方定义
- 工作一两年后,需要了解算法
民间定义
- 数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可通过相关的函数给出—-《数据结构、算法与应用》
- 数据结构是ADT(抽象数据类型)的物理实现 —-《数据结构与算法分析》
- 数据结构是计算机存储、组织数据的方式。通常,精心选择的数据结构可以带来最优效率的算法
—-中文维基百科
自己角度
- 数据结构就是计算机中,存储和组织数据的方式
- 如果你拥有一个图书馆,如何摆放图书:
- 新书如何插入
- 怎么找到指定的书
- 推荐: 将书架划分几块区域,按照类别存放,类别中按照字母顺序
- 常见的数据结构:
- 队列、栈、树、堆、数组、链表、图、散列表
- 算法(Algorithm)的认识
- 不同的算法、执行效率不同
- 算法的定义
- 一个有限指令集,每条指令的描述不依赖于语言
- 接受一些输入(有些情况不需要输入)
- 产出输出
- 一定有限步骤之后终止
- 通俗的理解:
- Algorithm这个单词本意就是解决问题的办法/步骤逻辑
- 数据结构的实现,离不开算法
数据结构
- JS数组就是API的调用
- 补充:普通语言的数组封装(java的ArrayList)
- 常见语言的数组不能存放不同的数据类型,因此所有在封装时通常存放在数组中的是Object类型
- 常见语言的数组容量不会自动改变,需要进行扩容操作
- 常见语言的数组进行中间插入和删除性能比较低
