程序=数据结构+算法:这句话是讲算法或者数据结构的课程时老师必讲的一句话。充分体现了算法和数据结构在计算机领域中的地位,下面简单介绍下数据结构与算法的基本概念。
数据结构:
1. 什么是数据结构:简单说,就是指数据与数据之间的关系(逻辑结构)。
2. 数据的存储结构(存储在内存中):
(1) 顺序存储结构(要求逻辑上相邻的结点存储在物理位置相邻的存储单元里)
(2) 链式存储结构(不要求逻辑上相邻的结点存储在物理位置相邻的存储单元里)
3. 数据的逻辑结构(数据与数据之间的关系):
(1)集合结构:元素之间没有关系。
(2)线性结构:元素之间存在一对一的关系。
(3)树形结构:元素之间存在一对多的关系。
(4)图形结构:元素之间存在多对多的关系。
算法:
1. 算法的定义:是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。简单说,就是指解题的方法(步骤和思路)。解决同一个问题可以用不同的方法(算法),针于某一个问题而言,算法没有最好的,只有最合适的。
2. 算法的特性:
(1) 输入(至少有0或多个输入)、
(2) 输出(至少有1个输出)、
(3) 有穷性(是有确定的计算次数)、
(4) 确定性(结果是确定的,唯一的)、
(5) 可行性(该算法是能够实现的)。
3. 算法的基本要求:正确性、可读性、健壮性、时间复杂度、空间复杂度。
同时,时间复杂度和空间复杂度也是衡量一个算法优劣的关键指标。