数据结构 绪论 关键知识点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本门课程研究的对象为:数据结构、算法。
一、算法
1.算法具有五个基本特征:
(1)有穷性,算法的执行必须在有限步内结束。
(2)确定性,算法的每一步骤必须是确定无二义性的。
(3)可行性,算法中的运算都必须是可以实现的。
(4)输入,算法可以有0个或多个输入。
(5)输出,算法一定有输出结果。
算法具有有穷性,程序不需要具备有穷性。一般的程序都会在有限时间内终止,但有的程序却可以不在有限时间内终止,如一个操作系统在正常情况下是永远都不会终止的。
2.如何衡量一个算法的好坏:
时间复杂度:对一个算法执行效率的度量。
空间复杂度:是指一个算法在执行过程中所占用的存储空间的度量。
3.时间复杂度的计算:
事前分析估算法:通常用高级程序设计语言编写的程序在计算机上运行时消耗的时间取决于下列因素。
(1)算法选用何种策略。
(2)问题的规模。
(3)所使用的程序设计语言,就同一个算法而言,用级别越高的语言实现,其执行的效率越
低。
(4)编译程序所产生的机器代码的质量。
(5)机器执行指令的速度。
4.时间复杂度简单判别:
(1)若算法中不存在循环,则算法平均时间复杂度为常量T(n)=O(1);
(2)若算法中仅存在单重循环,则决定算法时间复杂度的基本操作是算法中该循环中语句对
应的基本操作。n为循环语句基本操作执行的次数,平均时间复杂度为T(n)=O(n);(3)若算法中存在多重循环,则决定算法时间复杂度的基本操作是算法中循环嵌套层数最多
的语句对应的基本操作重复的次数。例如两重循环,外层循环n次,内层循环n次,则平均时间复杂度T(n)=O(n2)
二、数据结构分为两个方面
1.逻辑结构。研究一种数据结构怎么抽象成通用的描述和表示,包括这种结构是什么样的,怎么去操作这种结构以及结构里的元素。这是一种逻辑上的概念,是抽象的。
2.存储结构。研究怎么将一种数据的逻辑结构存储在我们的计算机内存里面,以及怎么使用计算机编程语言实现其对应的操作。这是一种物理上的概念。
而从逻辑上讲,数据结构可以划分为:线性结构、集合结构、树形结构、图状(网状)结构。后三种是非线性的。
而从存储上讲,数据结构可以换分为:顺序存储结构、链式存储结构、索引存储结构、哈希(或散列)存储结构。顺序存储结构、链式存储结构是我们主要学习的对象。