第一章
什么是数据结构?
即数据元素之间存在的一种或多种特定关系的数据元素的集合,Data_Struct = {Data,Relate}。
数据结构包括哪些内容?
1、逻辑结构:线性结构与非线性结构,线性如顺序表,列表,队列,数组等,非线性如图,树等。
2、存储结构:顺序存储(数组,顺序表),链式存储(链表,链栈,链式队列),索引存储(速度快,但索引表占用额外空间),散列存储(散列表)
3、数据的运算:包括定义与实现,定义针对逻辑结构,实现针对物理结构;
什么是抽象数据类型?
简单的说就是类似于线性表,把它用结构体表示出来,而结构体与可以对结构体进行的操作就是线性表的抽象数据类型。定义是一个数学模型以及定义在该模型上的一组操作
什么是算法?
即对问题的求解过程的描述。
具有5大特性:
有穷性:能够在有限时间内完成,并且每一步也在有限时间内完成;
确定性:相同输入,相同输出,即输入确定,输出就确定;
可行性:能通过有限次数的基本运算实现;
输入:有0或0+个输入;
输出:有0或0+个输出。
算法目标:
1、正确性:算法能够准确的解决问题
2、可读性:能够可以理解的
3、健壮性:算法能够正确处理异常输入
4、高效和低存储;
算法效率度量:时间复杂度与空间复杂度
时间复杂度:重复执行语句的次数的总合,常数次时间复杂度为O(1);
空间复杂度:一个算法执行过程中所需的辅助空间,常数个辅助空间间复杂度为O(1);