线性结构和非线性结构讲解
- 格式:ppt
- 大小:665.50 KB
- 文档页数:81


第一章数据结构与算法1.1 算法1.1.1算法:是指解题方案的准确而完整的描述。
规定了解决某类问题所需的操作语句以及执行顺序使其能通过有限的指令语句,在一定时间内解决问题算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。
算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。
1.算法特征包括:(1)可行性;(2)确定性,算法中每一步骤都必须有明确定义,不允许有模棱两可的解释,不允许有多义性;(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限的步骤后终止,包括合理的执行时间的含义;(4)拥有足够的情报。
2.算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构通常,计算机可以以执行的基本操作是以指令的形式描述的。
一个计算机系统能执行的所有指令的集合,称为计算机系统的指令系统。
(1)计算机系统中的基本运算和操作包括:算术运算+ - * /逻辑运算not and or关系运算< > ! =数据传输赋值输入与输出(2)算法的控制结构:顺序结构、选择结构、循环结构。
3.算法基本设计方法:列举法(列举所有解决方案)归纳法(特殊→一般)递推(已知→未知)递归(逐层分解)减半递推“减半”是指将问题的规模减半,而问题的性质不为,所谓“递推”是指重复“减半”的过程回溯法找出一个解决问题的线索,然后沿着这个线索逐步多次“探、试”1.1.2算法复杂度算法时间复杂度和算法空间复杂度(一个算法所要付出的代价)是衡理算法好坏的。
1.算法时间复杂度算法时间复杂度是指执行算法所需要的计算工作量。
(既算法的运算次数)含义:算法执行过程中所需要的基本运算次数影响计算工作量的主要因素:一、基本运算次数二、问题与规模2.算法空间复杂度是指执行这个算法所需要的内存空间。
一个算法所用的内存空间包括:1、算法程序所占的空间2、输入的初始数据所占的存储空间3、算法执行过程中的额外空间1.2 数据结构的基本基本概念数据:在计算机科学中指所有能输入到计算机中的并被计算机程序处理的符号的总称数据元素:数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
线性结构与非线性结构一、引言在计算机科学中,数据结构是指组织和存储数据的方式。
线性结构和非线性结构是数据结构中的两种常见类型,它们在组织和存储数据方面具有不同的特点和应用场景。
本文将重点讨论线性结构和非线性结构的定义、特点以及常见的应用。
二、线性结构1. 定义线性结构是数据元素之间存在一对一的顺序关系的结构。
每个数据元素只能有一个直接前驱和一个直接后继。
线性结构中的数据元素之间不存在分支和循环。
2. 特点- 线性结构可以用线性表来表示,常见的线性表包括数组和链表。
- 线性结构具有简单直观的顺序关系,易于理解和实现。
- 在线性结构中,插入和删除操作相对简单,时间复杂度为O(1)或O(n)。
3. 应用- 数组是一种常见的线性结构,适用于元素个数固定且需要频繁访问的场景,如存储学生成绩、图像像素等。
- 链表也是一种常见的线性结构,适用于元素个数不固定、频繁插入和删除操作的场景,如实现栈、队列等。
三、非线性结构1. 定义非线性结构是数据元素之间存在一对多或多对多的关系的结构。
非线性结构中的数据元素之间可以存在分支和循环。
2. 特点- 非线性结构能够更灵活地表达数据元素之间的关系,能够更好地表示实际问题的特点。
- 非线性结构的实现相对复杂,需要通过指针、引用或其他数据结构来建立关系。
3. 应用- 树是一种常见的非线性结构,适用于表示具有层次结构的数据,如文件系统、组织结构等。
- 图是另一种常见的非线性结构,适用于表示各种复杂关系网络,如社交网络、交通网络等。
四、线性结构与非线性结构的比较1. 存储方式线性结构可以使用连续的内存空间来存储,如数组。
非线性结构需要使用指针或其他数据结构来建立关系,如树和图。
2. 增删操作线性结构中的增删操作相对简单,时间复杂度为O(1)或O(n)。
非线性结构中的增删操作相对复杂,时间复杂度取决于结构的规模和复杂程度。
3. 数据组织方式线性结构中的数据元素之间存在简单直观的顺序关系,适用于有序数据。