ps:回家第一天,复习开始了,嘎嘎嘎。
数据:对客观事物的符号化表示,在计算机科学中是指能够输入到计算机中并被计算机处理的符号的总称。
例如:一张照片存储到计算机中,则计算机中代表照片的所有0和1称为数据。
数据元素:数据的基本组成单位,常作为一个整体进行考虑和处理。通常一个数据元素由若干个数据项组成。
例如: 一本书的信息为一个数据元素,而其是由若干个数据项组成(书名,作者,出版日期等),而数据项是数据不可分割的最小单位。
数据对象:数据对象是数据性质相同的数据元素的集合,是数据的 一个子集。
例如:字母字符数据对象是集合C={‘A’,'B'...'Z'}。
数据结构:数据结构是相互之间存在的一种或者多种特定关系的数据元素的集合,每种数据元素之间的相互关系称之为结构。结构分为两大类:
从逻辑结构上分:
集合,线性结构,树形结构,图状结构(网状结构)
从物理结构上分:
顺序结构,链式结构,索引结构,散列结构数据类型:
数据类型是一个值的集合和定义在这个集合上的一组操作的总称。分为原子类型(c语言中的基本类型byte,int等)和结构类型(c语言中的结构体)
算法:算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令都表示一个或者多个步骤。
有穷性:一个算法总是在执行有穷步之后结束,切每一步都可在又穷时间内完成。
确定性:一个算法每一条指令必须有确切和含义,在任何条件下算法只有唯一的一条执行路径。
可行性:一个算法是可行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现。
输入:一个算法可以有零个或者多个输入。
输出:一个算法有一个或者是多个输出。
算法设计要求:
正确性:算法应当能够满足具体问题的需求,能实际的使用。
健壮性:当输入非法的数据时,算法也能进行适当的反应或是做出一定的处理,而不会产生莫名其妙的输出结果。
可读性:算法设计要便于人阅读理解。
效率和低存储要求:算法要尽量的提高运算效率而降低对于存储的要求。
算法的时间和控件复杂度:
时间复杂度:一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数f(n),算法的时间度量记做T(n) = O(f(n)),她表示随着问题规模n的扩大,算法执行时间增长率和f(n)的增长率相同,称为算法的渐进时间复杂度。
空间复杂度: 一般情况下,算法中所需要的存储要求是问题规模n的某个函数f(n),算法的存储度量记做S(n) = O(f(n)),她表示随着问题规模n的扩大,算法所需存储的增长率和f(n)的增长率相同,称为算法的渐进空间复杂度。