第1章 数据结构导论
第1章 数据结构导论
可执行程序=数据结构+算法
算法的条件
- 输入,0或多个输入数据,必须清楚描述和定义。
- 输出,至少会有一个结果。
- 明确性,每一个指令和步骤必须简洁明确。
- 有限性,有限步骤后一定结束,不会产生无限循环。
- 有效性,步骤清楚可行,能让用户通过纸笔计算而求得。
程序设计5大步骤
- 需求认识,所要解决的问题,有哪些输入输出
- 设计规划,根据需求选择合适数据结构,写一个算法解决问题。
- 分析讨论,思考可能合适的算法和数据结构,最后选出合适的。
- 编写程序,把分析结构写成初步代码。
- 测试检验,确认程序的输出符合需求。
数据类型简介
- 基本数据类型(atomic data type),物理数据类型,基本数据实体Java中8种。
- 结构型数据类型(structure data type),一个数据结构中包含其他数据类型,字符串,集合,数组等。
- 抽象数据类型(Abstract data type,ADT),更高级,定义结构性数据结构所具备的数学运算关系,无须考虑制作细节,只针对数据的运算,不关注数据本身的性质。例如:堆栈,队列等。
结构化程序设计三种设计流程
- 顺序结构,逐步编写程序语句
- 选择结构,根据某些条件做逻辑判断
- 重复结构:根据某些条件决定是否重复执行程序
时间复杂度
大O表示法,常见有几种: