什么是数据结构:
数据结构就是用来组织和存储数据的方法,以便可以高效地访问和修改数据。
数据结构分为逻辑结构和物理结构两大类
逻辑结构分类:
逻辑结构是从具体问题中抽象出来的模型,是抽象意义上的结构,按照对象中数据元素之间的相互
关系分类。
a.集合结构:集合结构中数据元素除了属于同一集合外,他们之间没有任何其他的关系。
b.线性结构:线性结构中的数据元素之间存在一对一的关系
c.树形结构:树形结构中的数据元素之间存在一堆多的层次关系
d.图形结构:图形结构的数据元素是多对多的关系。
数据结构有两大用途:
一是用于存放要处理的数据;
二是用于实现算法策略。
算法用途:设计并实现一种用计算机来解决问题的方法。
算法是什么:
算法是指在解决问题时按照某种机械程序步骤一定可以得到结果的处理过程。这种过程必须是确定的、有效的、有限的。
1. 算法定义
一系列将问题的输入转换为输出的计算或操作步骤。
2. 计算机算法与人工算法
有些问题没有计算机算法。
有些问题计算机算法与人工算法不同。
3.计算机算法的一般特征
(1)输 入:
有外部提供的量作为算法的输入。
(2)输 出:
算法产生至少一个量作为输出。
(3)确定性:
组成算法的每条指令是清晰,无歧义的。
(4)有限性:
算法中每条指令的执行次数是有限的,执行每条指令的时间也是有限的。
4.算法的三个要素
1) 数据: 运算序列中作为运算对象和结果的数据。
2) 运算: 运算序列中的各种运算:赋值,算术和逻辑运算。
3) 控制和转移: 运算序列中的控制和转移。
5.算法的描述语言
自然语言,数学语言,流程图,程序设计语言等等。
6.问题的求解过程
1 问题的陈述
2 建立数学模型
3 设计算法
4 算法的正确性证明
5 算法的程序实现
6 算法分析
7.算法与程序、数据结构的关系
程序=算法+数据结构,而算法=逻辑+控制
数据的结构,直接影响算法的选择和效率。
8.算法与程序,数据结构的关系
数据结构的三个方面:数据的逻辑结构;数据的储存结构;数据的运算
9. 好的算法应该具备以下特性:
•正确性:正确性是对算法能否正确求解问题的评价,是首要和最基本的特性;
•可读性:可读性是对算法描述的思路、层次的评价。好的算法应该是思路清晰、 层次分明、阅读和修改容易;
•健壮性:健壮性是对算法在异常情况下处理能力的评价。好的算法在出现异常 或非法数据时,在操作不当时,算法都能作适当处理;
•高效性:算法的效率是对求解同样问题的不同算法所占用的时间或空间的评价。 好的算法应该是高效的,即求解问题所占用存储空间少,执行时间短;
•算法的执行时间是求解问题的规模n(如矩阵的阶数,线性表的长度)的函数
•我们考察它的数量级量度,即它与什么简单函数f(n)是同一数量级的,即T(n)=O(f(n))当n→∞时T(n)/n3 = (2n3+3n2+2n+1)/ n3→2 按“O”的定义我们可知T(n)=O(n3)
944

被折叠的 条评论
为什么被折叠?



