数据:
计算机能处理数值型问题和非数值型问题,对于非数值型的问题: 1.我们关心每个个体的具体信息 2.我们还关心个体之间的关系。
数据元素:用于描述一个个体。它由数据项所构成,每一个数据项都对应这该个体的具体信息。
数据对象:具有相同结构的数据元素的集合,强调的是数据元素的结构是否相同。
数据结构:用于描述各个数据元素之间的关系,强调的是关系不强调结构是否相同。
集合:
线性结构:
树形结构:
图结构:
数据的运算:针对某种特定的逻辑结构,结合需求定义基本的运算。
当我们确定了数据的逻辑结构和基本运算后也就相当于定义了一个数据结构。
数据在计算机中的存储方式共有四种为顺序存储,链式存储,索引存储,散列存储。
顺序存储:
链式存储:
索引存储:
散列存储:
数据的存储结构会影响对数据的运算速度如一个数据是采用连续存储的方式存储在内存中的,那么想要往数据的中间插入一个元素,需要把后面的元素往下移动为该元素腾出空间。而数据的移动是很耗时间的。如果采用链式存储的话只需要随便找一片空闲的空间把数据写入并修改数据的指针关系即可。
数据类型就是数据结构的具象化如整形,数组等。
程序=数据结构+算法 其中数据结构的作用是用数据正确地描述现实世界的问题,并存入计算机。算法的作用是根据已知的数据给出解决问题的步骤。
一个算法必须具有四个特性才能称为算法,确定性:算法中每条指令必须有确切的含义,对于相同的输入只能得出相同的输出。可行性:算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现(就是算法必须得能用计算机语言表示出来并且不能陷入死循环)。输入:一个算法有零个或多个输入,这些输入取自于某个特定的对象的集合。输出:一个算法有一个或多个输出,这些输出是与输入有着某种特定关系的量。
好的算法应该具有以下四个特性,正确性:算法应能够正确地解决求解问题。可读性:算法应具有良好的可读性,以帮助人们理解。健壮性:输入非法数据时,算法能适当地做出反应或进行处理,而不会产生莫名其妙的输出结果(就是能对非法数据进行处理)。高效率与低存储量需求:花的时间少时间复杂度低,耗费的内存少空间复杂度低。
算法的时间复杂度:
算法的空间复杂度: