数据是人们利用文字符号、数字符号以及其他规定的符号对现实世界的事物及其活动所做的抽象描述。
表示一个事物的一组数据称作一个数据元素。构成数据元素的数据称作该数据元素的数据项。
数据结构包括 数据的逻辑结构、数据的存储结构、数据的操作
数据元素之间的相互联系方式称为数据的逻辑结构
数据的逻辑结构主要可分为 线性结构、树状结构,图形结构 P2
数据元素在计算机中的存储方式称为数据的存储结构。
数据存储结构的基本形式有两种:顺序存储结构、链式存储结构
顺序结构 逻辑上相邻的元素在物理上也相邻 一对一
链式对于顺序 除了存了数据元素,还存了一个指针该指针指向下个元素的地址。
一种数据类型数据允许进行的某种操作称作数据的操作,一种数据类型数据所有的操作称作数据的操作集合
类型是一组值的集合。
数据类型是指一个类型和定义在这个类型的操作集合。
抽象数据类型是指一个逻辑概念上的类型和这个类型上的操作集合。 P4
算法是描述求解问题方法的操作步骤集合。
任何算法都应该满足:输入性、输出性、有限性、确定性、可执行性。
算法设计的目标:正确性、可读性、健壮性、高时间效率、高空间效率。
算法时间效率分析两种方法:事后统级法( 测试麻烦效率低)、事前分析法。
根据算法编译的程序在计算机中运行所消耗的时间与下列因素有关:
1、书写算法的程序设计语言
2、编译产生的机器语言代码的质量
3、机器执行指令的速度、
4、问题的规模,即算法的耗时与算法所处理数据个数n的函数关系
T(n)=O(f(n))
执行次数==时间
计算时间复杂度的攻略:
1、用常数1取代运行时间中所有加法常数量。
2、在修改后的运行次数函数中,只保留最高阶项。
3、如果最高阶项存在且不是1,则去除与这个项相乘的常数。
4、最后的结果就是大O阶。
常用的时间复杂度所耗费的时间从小到大依次是:
O(1)<O(logn)<O(n0)<O(nlogn)<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n)
p1---p15