数据结构和算法
一 . 概念
1. 数据结构
概念:
这是一门专门处理数据的学科,数据元素之间的关联称为结构,描述的是存储和组织数据的方式。
2. 数据
对客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。
3. 数据项
数据项是数据的不可分割的最小单位。(譬如每个表中字段都是一个数据项)
4. 数据元素
数据的基本单位,在计算机中作为一个整体进行考虑和处理。一个数据元素由多个数据项组成。(数据库表中的每一条数据就表示一个数据元素)
5. 数据对象
性质相同的数据元素的集合,是数据的一个子集。
这里记住集合这个概念,所有的用户组合在一起是数据对象,所有的女性用户也是一组数据对象。
二 . 数据结构和数据类型
通常数据结构有四种结构:
1、集合
2、线性结构
3、树形结构
4、图(网)状结构
上面说的都是数据的逻辑关系,数据结构中的物理结构(存储结构)有两种:
1、顺序存储结构
2、链式存储结构
下面在介绍一个概念
数据类型: 一个值的集合和定义在这个值集上的一组操作的总称。
注意: 这个概念中说的,不只包含值的集合,还包涵对值集的操作。
数据类型又分为两类:
1、 原子类型:
值不可再分。比如java中的int 、 char、 String等。
2、 结构类型:
由若干成分按某种结构组成,可以被分解。比如一个整型数组,可以循环分割成多个整型元素。
三 、算法和算法分析
算法是对特定问题求解步骤的一种描述,说白了就是我们通过解决问题的程序代码,就可以说是算法。
算法有以下5个特征:
1、 有穷性: 算法必须在执行有限个步骤之后终止。
2、确定性: 算法的每一步骤必须有确切的定义,相同的输入只能得出相同的输出。
3、可行性: 或者叫有效性,每个计算步骤都可以在有限时间内完成。
4、输入: 一个算法有零个或者多个输入。
5、输出: 一个算法有一个或者多个输出。
好的算法的评判标准:
1、正确性:满足祖逖问题的需求。
2、可读性:容易被人理解。
3、健壮性:对输入的非法数据,能偶适当的进行处理。
4、效率与低存储量需求:尽量使算法的执行时间越短,运行时占用的空间更小。
算法效率的度量:
1、事后统计的方法:对运行结果进行统计分析,得出执行效率。
2、事前分析估算:估算算法的时间复杂度。
算法时间复杂度是一个函数,它定性描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的算法。
一般我们最常用的办法是讨论算法在最坏情况下的时间复杂度。