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