第11次课公共基础知识Word格式文档下载.docx
- 文档编号:15166825
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:21
- 大小:950.55KB
第11次课公共基础知识Word格式文档下载.docx
《第11次课公共基础知识Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《第11次课公共基础知识Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。
如:
在2,3,8,9,10中查找8,则将8分别与此序列中的数据比较。
我们只需要比较3次,所以在此我们做了3次的工作量。
◆空间复杂度:
一般是指执行此算法所需要的内存空间。
(大家将内存空间理解为若干个连续的格子)
5.算法与程序的关系:
算法和程序是两个不同的概念,程序是对算法使用某种程序设计语言的具体实现。
算法必须可终止,因此不是所有的程序都是算法(操作系统是一个程序,而不是一个算法)。
1.2数据结构的基本概念
数据结构是指反映数据元素之间关系的数据集合的表示,即带有结构的数据元素之间的前后件关系。
◆数据的逻辑结构:
数据集合中各数据元素之间所固有的逻辑关系;
◆数据的存储结构:
对数据进行处理时,各数据元素在计算机中的存储关系(数据的逻辑结构在内存中的存放形式)。
1.常见数据结构:
2.常用数据的存储结构:
◆顺序存储方式
◆链式存储方式
◆索引存储方式
◆散列存储式
3.线性结构与非线性结构:
根据结构中各数据元素之间前后件关系的复杂程度,将数据结构分为两个类型:
线性结构和非线性结构。
◆线性结构:
在数据元素的非空有限集中,线性结构有如下特征:
①存在惟一的一个被称作“第一个”的数据元素。
②存在惟一的一个被称作“最生一个”的数据元素。
③除第一个之外,集合中的每个数据元素均只有一个前驱。
④除最后一个之外,集合中的每个数据元素均只有一个后继。
◆非线性结构:
其特征是一个结点可能有多个直接前驱和直接后继,例如,树和图都是非线性结构。
1.3线性表:
线性表是n个数据元素的有限序列。
数据元素可以是一个数,或是一个符号,或是一页书,或是其他更复杂的程序。
1.栈:
栈(Stack)是一种特殊线性表,它只能在表的一端进行插入与删除运算,这一端称为栈顶(Top),另一端称为栈底(Bottom)。
◆栈的顺序存储结构
栈的顺序存储结构是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素册时附设指针指示栈顶元素在顺序栈中的位置。
如下图所示。
◆栈的特点:
具有记忆作用,先进后出(后进先出)
2.队列:
队列(Queue)是只允许在一端删除,而在另一端插入的顺序表。
允许插入的一端叫做队尾(Rear),允许删除的一端称为队头(Front)。
◆队列的顺序存储结构:
◆队列的运算:
◆队列的特点:
先进先出
3.循环队列:
◆循环队列的入队过程:
◆循环队列的两种形态:
4.线性链表:
线性链表(也称单链表)是线性表的链式存储结构,其中每个结点由数据域和指针域两部分构成。
如下图所示:
1.4树与二叉树
1.树的定义:
树(Tree)是一种简单的非线性结构。
在树这种数据结构中,所有数据元素之间的关系具有明显的层次特征(如下图所示)。
树是一个或多个结点组成的有限集合,其中一个特定的结点称为根,其余结点分为若干个不相交的集合。
每个集合同时又是一棵树,树有且只有1个根结点。
(07.4)
2.二叉树的定义:
二叉树(BinaryTree)是另一种树形结构,它的特点是每个结点至多只有两棵子树,并且二叉树的子树有左右之分,位于左侧的子树叫左子树,位于右册的子树叫右子树,其次序不能颠倒。
◆结点的“度”:
一个结点的子结点数量称为该结点的度。
在一颗二叉树中,存在三种形式的结点,度为0(叶子结点),度为1,度为2。
(特别注意:
在任何二叉树中,度为2的结点比度为0的结点少一个,即:
度为2的结点数=度为0的结点数-1)。
【例题】:
一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二又树中的总结点数为:
219。
◆二叉树的深度:
二叉树的层数。
◆满二叉树:
除了最后一层外,每一层上的所有结点都有两个子结点(注意:
满二叉树没有度为1的结点)。
这就是说,在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第K层上有2k-1个结点,且深度为n的满二叉树有2n-1和结点。
◆完全二叉树:
除了最后一层外,每一层的结点数都达到最大值,在最后一层上只缺少右边的若干结点。
在深度为5的满二叉树中,叶子结点的个数为16。
若一棵完全二叉树共有950个结点,则该二叉树有1个度为1的结点。
设一棵完全二又树共有566个结点,则在该二叉树中有283个叶子结点。
3.二叉树的遍历(06.4,06.9,07.4):
所谓二叉树的遍历,就是遵循某种次序访问二叉树中的所有结点,使得每个结点仅被访问一次。
二叉树的遍历有:
前序遍历、中序遍历、后序遍历。
设有二叉树如下(图一)所示。
则其前、中、后序遍历分别为图二、图三、图四。
图一图二图三图四
设有如下图所示的二叉树,其前、中、后序遍历分别为:
(1).前序遍历:
A,B,D,G,H,E,I,C,F,J
(2).中序遍历:
G,D,H,B,E,I,A,F,J,C
(3).后序遍历:
G,H,D,I,E,B,J,F,C,A
设一棵二叉树的中序遍历结果为D、B、E、A、F、C,前序遍历结果为A、B、D、E、C、F,则后序遍历结果为:
D、E、B、F、C、A
1.5查找
1.顺序查找:
顺序查找又称顺序搜索,是指在线性表中查找指定的元素,其基本查找过程如下:
①从表中第一个记录形始,逐个进行记录的关键字和给定值的比较。
②若某个记录的关键字和给定值比较相等,则查找成功,找到所查记录;
若直至最后一个记录,其关键字和给定值比较都不等,则表明表中没有所查记录,查找不成功。
对于长度为n的线性表,在最坏的情况下,将比较n次。
2.二分法查找:
二分法查找又称折半查找,只适用于顺序存储的有序表,即要求线性表中的结点必须按关键字值的递增或递减顺序排列。
对于长度为n的线性表,在最坏的情况下,将比较log2n次。
由公式我们可以看出,长度在(64,128]内的所有有序线性表,其比较次数均为7。
例如:
在长度为80的有序线性表中进行二分查找,需要的比较次数为7。
1.6排序
排序(Sort)是将一组无序的记录序列调整为有序的记录序列操作。
1.交换排序
◆冒泡排序:
冒泡排序(BubbleSort)的基本思想是:
通过对待排序序列从前向后(从后向前),依次比较相邻元素的大小,若发现违反排序要求则交换,使待排序序列最终满足排序要求。
对于长度为n的线性表,需要比较的次数为:
n(n-1)/2。
冒泡法排序的示意图如图下所示。
◆快速排序:
快速排序(QuickSort)的基本思想是:
任取待排序序列中某个元素作为基准(一般取第一个元素),通过一趟排序,将待排序列分为左右两个子序列,左子序列元素的排序码都小于或等于基准元素的排序码,右子序列的排序码大于基准元素的排序码,然后对两个子序列继续进行类似排列,直到满足排序要求为止。
对于长度为n的线性表,最坏情况下,需要比较的次数为:
2.插入排序
◆简单插入排序:
简单插入排序是将无序序列中的各元素依次插入到已经有序的线性表中。
◆希尔排序:
希尔排序(ShellSort)是先将整个待排序元素序列分割成若干子序列(由相隔某个"
增量"
的元素组成)分别进行直接插入排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。
因为直接插入排序在元素基本有序的情况下效率很高。
O(n1.5)。
3.选择排序:
◆简单选择排序:
选择排序(SelectionSort)的基本思想是:
扫描整个线性表,从中找出最小元素,将它交换到线性表的最前面相应位置;
然后对其余的子表采用同样的方法,直到全部满足排序要求为止。
◆堆排序:
堆排序的适合规模较大的线性表。
在最坏的情况下,对于长度为n的线性表,需要比较O(nlog2n)次。
4.所有排序法的比较
排序法类型
排序方法名称
比较次数(最坏)
适合的数据范围
交换排序
冒泡排序
n(n-1)/2
规模小
快速排序
插入排序
简单插入排序
希尔排序
O(n1.5)
模较大
选择排序
简单选择排序
堆排序
O(nlog2n)
程序设计基础
2.1程序设计与风格
1.良好程序的要求:
◆源程序要文档化
◆数据说明次序要规范化
◆变量安排有序化
◆语句结构简单易懂
◆输入输出应方便用户使用
2.2结构化程序设计
1.结构化程序设计原则:
◆自顶向下
◆逐步求精
◆模块化
◆限制使用GOTO语句
2.结构化程序的基本结构
◆顺序结构
◆选择结构(分支结构)
◆重复结构(循环结构)
2.3面向对象程序设计
1.面向对象程序设计的优点:
◆与人类思维习惯一致
◆稳定性好
◆可重用性好
◆易于开发大型软件产品
◆可维护性好
2.面向对象方法的基本概念:
(1).对象的概念:
对象是用来描述客观事物的一个实体,是构成系统的一个基本单位,它由一组表示其静态特征的属性和它可执行的一组操作组成。
例如,一辆汽车是一个对象,它包含了汽车的属性(如颜色、型号、载重量等)及其操作(如启动、刹车等)。
又如,一个窗口是一个对象,它包含了窗口的属性(如大小、颜色、位置等)及其操作(如打开、关闭等)。
(2)对象的基本特点:
◆标识唯一性
◆分类性
◆多态性
◆封装性
◆模块独立性好
3.面向对象程序设计的基本特点:
◆继承性
◆封闭性
软件工程基础:
3.1软件工程基本概念
1.软件工程的定义:
软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。
软件工程的主要思想是:
强调在软件开发过程中需要应用工程化原则。
软件工程包括3要素:
方法、工具和过程(07.4)。
2.软件的生命周期
软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生存期。
也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生存期。
软件生存期一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。
这些活动可以有重复,执行时也可以有迭代,这是软件生存期的一个模型。
根据分析角度不同,还有演化模型、螺旋模型、喷泉模型和智能模型等。
还可以将软件生
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 11 公共 基础知识
![提示](https://static.bdocx.com/images/bang_tan.gif)