数据结构和算法
程序设计 = 数据结构 + 算法
这是一个著名的公式,说明这两个方面是非常重要的。在Java中,集合实现了多种数据结构,开发者使用就可以了。但是,了解数据结构,有助于理解源码,进而可以为不同的程序选择合适的数据结构。
一、数据结构
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
主要有两种结构:一是逻辑结构;二是物理结构。
1、数组
线性表的顺序存储结构的实现方式。
2、链表
链式存储结构有以下几种:单链表、静态链表、循环链表、双向链表。
3、栈
限定仅在表尾进行插入和删除的线性表。想象枪的子弹壳。
4、队列
只允许在一端进行插入操作,而在另一端进行删除的线性表。
5、串
比如Java中String类。KMP算法
二、算法
算法是解决特定问题求解步骤的描述,在计算机中为指令的有限序列,并且每条指令表示一个或多个操作。
算法运行的两个标准:时间复杂度和空间复杂度。
1、查找
2、排序
学习书籍:
1、大话数据结构
2.《数据结构与算法分析--Java语言描述》
3.《数据结构和抽象问题求解--Java语言描述》
4.《算法导论》