第3讲 计算机软件基础知识(1).ppt
《第3讲 计算机软件基础知识(1).ppt》由会员分享,可在线阅读,更多相关《第3讲 计算机软件基础知识(1).ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机软件计算机软件基础知识基础知识第三讲第三讲 基本组成基本组成3.1数据结构与算法数据结构与算法 1.1 算法算法算法算法:是一组有穷指令集,:是一组有穷指令集,是解题方案的准确而完整的是解题方案的准确而完整的描述。描述。通俗地说,算法就是计算机解题的过程。算法不等通俗地说,算法就是计算机解题的过程。算法不等于程序,也不等于计算方法,程序的编制不可能优于算法于程序,也不等于计算方法,程序的编制不可能优于算法的设计。的设计。算法是一组严谨地定义运算顺序的规则,每一算法是一组严谨地定义运算顺序的规则,每一个规则都是有效的,且是明确的,此顺序将在有限的次数个规则都是有效的,且是明确的,此顺序将在
2、有限的次数下终止。所以其下终止。所以其四个基本特征四个基本特征包括:包括:(1)确定性,算法中每一步骤都必须有明确定义,不允确定性,算法中每一步骤都必须有明确定义,不允许有模棱两可的解释,不允许有多义性;许有模棱两可的解释,不允许有多义性;(2)有穷性,算法必须能在有限的时间内做完,即能在有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止;执行有限个步骤后终止;(3)可行性,算法原则上能够精确地执行;可行性,算法原则上能够精确地执行;(4)拥有足够的情报。拥有足够的情报。算法的基本要素:一是算法的基本要素:一是对数据对象的运算和对数据对象的运算和操作操作;二是;二是算法的控制结构
3、算法的控制结构。指令系统:一个计算机系统能执行的所有指指令系统:一个计算机系统能执行的所有指令的集合。令的集合。基本运算和操作包括:算术运算、逻辑运算、基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。关系运算、数据传输。算法的三种基本控制结构算法的三种基本控制结构:顺序结构、选择结构、:顺序结构、选择结构、循环结构。循环结构。算法基本设计方法:列举法、归纳法、递推、算法基本设计方法:列举法、归纳法、递推、递归、减半递推技术、回溯法。递归、减半递推技术、回溯法。算法效率的度量算法效率的度量算法复杂度算法复杂度:算法时间复杂度算法时间复杂度和算法空间复杂度。和算法空间复杂度。算法时间复
4、杂度:算法时间复杂度:指执行算法所需要的计算工作指执行算法所需要的计算工作量。即算法执行过程中所需要的基本运算次数。量。即算法执行过程中所需要的基本运算次数。通常,一个算法所用的时间包括编译时间和运行通常,一个算法所用的时间包括编译时间和运行时间。时间。算法空间复杂度:算法空间复杂度:指执行这个算法所需要的内存指执行这个算法所需要的内存空间。包括算法程序所占的空间,输入的初始数空间。包括算法程序所占的空间,输入的初始数据所占的空间,算法执行过程中所需的额外空间。据所占的空间,算法执行过程中所需的额外空间。1.2 数据结构的基本概念数据结构的基本概念数据结构:指相互有关联的数据元素的集合。数据结
5、构:指相互有关联的数据元素的集合。数数据结构研究的三个方面:据结构研究的三个方面:(1)数据集合中各数据元素之间所固有的逻辑关数据集合中各数据元素之间所固有的逻辑关系,即系,即数据的逻辑结构数据的逻辑结构;(2)在对数据进行处理时,各数据元素在计算机在对数据进行处理时,各数据元素在计算机中的存储关系,即中的存储关系,即数据的存储结构数据的存储结构(或物理结构或物理结构);(3)对各种数据结构进行的运算。对各种数据结构进行的运算。数据的逻辑结构应包含:数据的逻辑结构应包含:(1)表示数据元素的信表示数据元素的信息;息;(2)表示各数据元素之间的前后件关系表示各数据元素之间的前后件关系(指逻指逻辑
6、关系,与存储位置无关辑关系,与存储位置无关)。数据的逻辑结构在计算机存储空间中的存放形式数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构称为数据的存储结构,也称数据物理结构。也称数据物理结构。数据的存储结构有顺序、链接、索引等。数据的存储结构有顺序、链接、索引等。按逻辑关系分类按逻辑关系分类1.线性结构线性结构2.非线性结构非线性结构:树结构和图结构:树结构和图结构线性结构的条件,线性结构的条件,(一个非空数据结构一个非空数据结构):(1)有有且只有一个根结点;且只有一个根结点;(2)每一个结点最多有一个每一个结点最多有一个前件,也最多有一个后件。前件,也最多有一个后件。非线性结构
7、:不满足线性结构条件的数据结构。非线性结构:不满足线性结构条件的数据结构。树结构:一个元素可以有两个或两个以上的树结构:一个元素可以有两个或两个以上的 直接后继元素直接后继元素 1.3栈和队列栈和队列 栈栈 是只能通过访问它的一端来实现数据结构存是只能通过访问它的一端来实现数据结构存储和检索的一种线性数据结构储和检索的一种线性数据结构栈栈:限定在一端进行插入与删除的线性表。:限定在一端进行插入与删除的线性表。其其允许插入与删除的一端称为栈顶,用指针允许插入与删除的一端称为栈顶,用指针top表表示栈顶位置。示栈顶位置。不允许插入与删除的另一端称为栈不允许插入与删除的另一端称为栈底,用指针底,用指
8、针bottom表示栈底。表示栈底。栈按照栈按照“先进后先进后出出”(FILO)或)或“后进先出后进先出”(LIFO)组织数)组织数据,栈具有记忆作用。据,栈具有记忆作用。栈的存储方式有顺序存储和链式存储。栈的存储方式有顺序存储和链式存储。栈的基栈的基本运算:本运算:(1)入栈运算,在栈顶位置插入元素;)入栈运算,在栈顶位置插入元素;(2)退栈运算,删除元素退栈运算,删除元素(取出栈顶元素并赋取出栈顶元素并赋给一个指定的变量给一个指定的变量);(3)读栈顶元素,将栈顶元素赋给一个指定的读栈顶元素,将栈顶元素赋给一个指定的变量,此时指针无变化。变量,此时指针无变化。队列队列:指允许在一端(队尾)进
9、入插入,而在另一端:指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。(队头)进行删除的线性表。用用rear指针指向队尾,用指针指向队尾,用front指针指向队头元素的前指针指向队头元素的前一个位置。一个位置。队列是队列是“先进先出先进先出”(FIFO)或)或“后进后出后进后出”(LILO)的线性表。)的线性表。队列运算包括:队列运算包括:(1)入队运算:从队尾插入一个元素;入队运算:从队尾插入一个元素;(2)退队运算:从队头删除一个元素。退队运算:从队头删除一个元素。队列的顺序存储结构一般采用队列循环的形式。它是利队列的顺序存储结构一般采用队列循环的形式。它是利用一组地址连续
10、的用一组地址连续的 存储单元存放队列中的元素,由于队存储单元存放队列中的元素,由于队列中元素的插入和删除限定在表的两端进行,因此设置队列中元素的插入和删除限定在表的两端进行,因此设置队头指针和队尾指针,分别指示出当前的队首元素和队尾元头指针和队尾指针,分别指示出当前的队首元素和队尾元素。素。1.4 树与二叉树树与二叉树 树是一种简单的非线性结构,其所有元素之间具树是一种简单的非线性结构,其所有元素之间具有明显的层次特性。有明显的层次特性。在树结构中,每一个结点只在树结构中,每一个结点只有一个前件,称为父结点。没有前件的结点只有有一个前件,称为父结点。没有前件的结点只有一个,称为树的根结点,简称
11、树的根。每一个结一个,称为树的根结点,简称树的根。每一个结点可以有多个后件,称为该结点的子结点。没有点可以有多个后件,称为该结点的子结点。没有后件的结点称为叶子结点。后件的结点称为叶子结点。在树结构中,一个结在树结构中,一个结点所拥有的直接后件的个数称为该结点的度,所点所拥有的直接后件的个数称为该结点的度,所有结点中最大的度称为树的度。树的最大层次称有结点中最大的度称为树的度。树的最大层次称为树的深度。为树的深度。二叉树二叉树的特点:的特点:(1)非空二叉树只有一个根结点;非空二叉树只有一个根结点;(2)每一个结点最多有两棵子树,且分别称为该每一个结点最多有两棵子树,且分别称为该结点的左子树与
12、右子树。结点的左子树与右子树。满二叉树满二叉树是指除最后一是指除最后一层外,每一层上的所有结点有两个子结点,则层外,每一层上的所有结点有两个子结点,则k层上有层上有2k-1个结点,深度为个结点,深度为m的满二叉树有的满二叉树有2m-1个结点。个结点。完全二叉树完全二叉树是指除最后一层外,每一层是指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少上的结点数均达到最大值,在最后一层上只缺少右边的若干结点。右边的若干结点。二叉树基本性质:二叉树基本性质:(1)在二叉树的第在二叉树的第k层上,最多有层上,最多有2k-1(k1)个结个结点;点;(2)深度为深度为m的二叉树最多有的二叉树最多
13、有2m-1个结点;个结点;(3)度为度为0的结点(即叶子结点)总是比度为的结点(即叶子结点)总是比度为2的结点多一个;即的结点多一个;即n0=n2+1(4)具有具有n个结点的二叉树,其深度至少为个结点的二叉树,其深度至少为log2n+1,其中其中log2n表示取表示取log2n的整数部分的整数部分(5)具有具有n个结点的完全二叉树的深度为个结点的完全二叉树的深度为log2n+1;二叉树的遍历:二叉树的遍历:(1)前序遍历前序遍历(DLR),首先访问根结点,然后遍历左),首先访问根结点,然后遍历左子树,最后遍历右子树;(树根在第一,下走不跳结点)子树,最后遍历右子树;(树根在第一,下走不跳结点)
14、(2)中序遍历中序遍历(LDR),首先遍历左子树,然后访问根),首先遍历左子树,然后访问根结点,最后遍历右子树;(有左先左,再寻根,后找右。结点,最后遍历右子树;(有左先左,再寻根,后找右。最左边的结点最先遍历,最右边的结点最后遍历)最左边的结点最先遍历,最右边的结点最后遍历)(3)后序遍历后序遍历(LRD)首先遍历左子树,然后访问遍历)首先遍历左子树,然后访问遍历右子树,最后访问根结点。(有左先左,再找右,后寻根,右子树,最后访问根结点。(有左先左,再找右,后寻根,到最右一路上行,树根在最后)到最右一路上行,树根在最后)二叉树中度为二叉树中度为 0 的节点的个数比度为的节点的个数比度为 2
15、的节点的个数多的节点的个数多一。一。二叉树遍历总结二叉树遍历总结:前序遍历:最左边的一定是根节点;前序遍历:最左边的一定是根节点;中序遍历:根节点左侧是左子树,右侧是右子树;后续遍中序遍历:根节点左侧是左子树,右侧是右子树;后续遍历:最右边是根结点。历:最右边是根结点。3.2 软件工程基本概念软件工程基本概念 计算机软件是包括程序、数据及相关文档的完整集计算机软件是包括程序、数据及相关文档的完整集合。合。软件的特点包括:软件的特点包括:(1)软件是一种逻辑实体,具有抽象性;软件是一种逻辑实体,具有抽象性;(2)软件的生产与硬件不同,它没有明显的制作软件的生产与硬件不同,它没有明显的制作过程;过
16、程;软件在运行、使用期间不存在磨损、老化问题;软件在运行、使用期间不存在磨损、老化问题;(4)软件的开发、运行对计算机系统具有依赖性,软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题;受计算机系统的限制,这导致了软件移植的问题;软件复杂性高,成本昂贵;软件复杂性高,成本昂贵;(6)软件开发涉及诸多的社会因素。软件开发涉及诸多的社会因素。软件工程是指应用计算机科学、数学及管理科学软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题等原理,以工程化的原则和方法来解决软件问题的工程,其目的是提高软件成产率、提高软件质的工程,其目的是提
17、高软件成产率、提高软件质量、降低软件成本。量、降低软件成本。软件按功能分为应用软件、系统软件、支撑软软件按功能分为应用软件、系统软件、支撑软件件(或工具软件或工具软件)。软件危机主要表现在成本、质量、生产率等问软件危机主要表现在成本、质量、生产率等问题。题。软件工程的核心思想是把软件产品看作是一个软件工程的核心思想是把软件产品看作是一个工程产品来处理。工程产品来处理。软件工程包括软件工程包括3个要素:方法、个要素:方法、工具和过程。工具和过程。一个软件产品或软件系统要经历孕育、诞生、一个软件产品或软件系统要经历孕育、诞生、成长、成熟、衰亡的许多阶段,一般称为软件生成长、成熟、衰亡的许多阶段,一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第3讲 计算机软件基础知识1 计算机软件 基础知识
限制150内