数据:人们利用文字符号,数字符号以及其他规定的符号对现实世界的事物及活动所做的抽象描述。(今天的天气情况是,最高温度为5℃,最低温度为-5℃)
数据元素:表示一个事物的一组数据
数据项:构成数据元素的数据(描述学生信息,包括学生学号,姓名,性别,年龄等,其中一个学生的全部信息是一个数据元素,一个学生信息中的学号,姓名,性别,年龄分别为一个数据项)
数据的逻辑结构:数据元素之间的相互联系方式。主要可以分为:线性结构,树状结构,图状结构和集合。
线性结构:除第一个和最后一个数据元素外,每个数据元素只有一个唯一的前驱元素(与当前元素紧挨着中前面的那个元素)和一个唯一的后继元素(后面那个元素)(“ABCDE”中对于C来说,B是唯一的前驱,D是唯一的后继)
树状结构:除了根结点外,每个数据元素只有一个唯一的前驱数据元素,可有零个或若干个后继数据元素。
树中A为根结点,B的前驱为A,后继为D和E
图状结构:每个数据元素可有零个或若干个前驱元素和零个或若干个后继元素。
E的前驱为B和C,后继为F和G
集合结构:一种包含不同元素的数据结构,每个元素都是独一无二的,互不相同,同时所有数据都是无序的。
数据的存储结构:数据元素在计算机中的存储方式。基本形式有两种:顺序存储结构,链式存储结构。
顺序存储结构:把数据元素存储在一块连续地址空间的内存中,特点是,逻辑上相邻的数据元素在物理上也相连(一个班级的学生,按学号顺序就坐)
链式存储结构:使用指针把相互直接关联的结点(即直接前驱节点或直接后继结点)链接起来,特点是,逻辑上相邻的数据元素在物理上(内存单元位置)不一定相邻。
数据的操作:一种数据类型数据允许进行的某种操作,一种数据类型的所有的操作称作数据的操作集合。
数据类型:指一个类型和定义在这个类型上的操作集合。(比如说整型,不仅指的是-32768~32767的数值范围,也指加减乘除和求模操作)
抽象数据类型(ADT):一个逻辑概念上的类型和这个类型上的操作集合。(可以看作成大纲,说明了有谁参与,需要完成什么)
算法:描述求解问题方法的操作步骤集合。
算法设计应满足的性质:输入性,输出性,有限性,确定性,可执行性。
算法设计希望高时间效率和高空间效率
二者发生矛盾时,优先时间效率。
算法的时间效率分析:算法的耗时与算法所处理数据元素个数n的函数关系,也叫时间复杂度分析
O(1)<O(lbn)<O(n)<O(nlbn)<O(n^2)<O(n^3)<O(2^n)<O(n!)