公共基础部分PPT讲稿.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《公共基础部分PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《公共基础部分PPT讲稿.ppt(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、公共基础部分第1页,共65页,编辑于2022年,星期五第一部分第一部分 数据结构与算法数据结构与算法一、算法重点考点一、算法重点考点 1、算法的概念、算法的概念(记忆记忆)算法是指解决问题方案的准确而完整的描述算法是指解决问题方案的准确而完整的描述.2、算法的基本特征、算法的基本特征(记忆记忆)可行性可行性,确定性确定性,有穷性有穷性,拥有足够的情报拥有足够的情报 3、算法的控制结构、算法的控制结构(记忆记忆)顺序顺序 ,选择选择(分支分支),循环循环第2页,共65页,编辑于2022年,星期五4、算法设计基本方法、算法设计基本方法(理解理解+记忆记忆)列举法、归纳法、递推法、递归法、减半递推技
2、术列举法、归纳法、递推法、递归法、减半递推技术比较递推法和递归法比较递推法和递归法 递推递推:从已知条件出发从已知条件出发,逐次推出中间结果和最后结果逐次推出中间结果和最后结果.递归递归:将问题逐层分解将问题逐层分解,解决简单问题解决简单问题,再朝逆方向综合再朝逆方向综合.递归算法递归算法要比要比递推算法递推算法清晰易读清晰易读,且易设计且易设计,但执行效率低但执行效率低第3页,共65页,编辑于2022年,星期五5、算法复杂度、算法复杂度 时间复杂度时间复杂度:是指执行算法所需要的计算工作量是指执行算法所需要的计算工作量.空间复杂度空间复杂度:是指执行算法所需要的存储空间是指执行算法所需要的存
3、储空间.存储空间包括存储空间包括:算法程序所占空间算法程序所占空间,输入原始数据所占空间执输入原始数据所占空间执行算法时需要的额外空间行算法时需要的额外空间.如果如果额外空间额外空间是常量是常量,则称该算法是则称该算法是”原地工作原地工作”第4页,共65页,编辑于2022年,星期五二、数据结构的考点、数据结构的考点1、数据结构的概念、数据结构的概念 数据的逻辑结构数据的逻辑结构:指反应数据元素之间逻辑关系的数据结构指反应数据元素之间逻辑关系的数据结构.如:如:春夏秋冬春夏秋冬 数据的存储结构数据的存储结构(物理结构物理结构):指数据的逻辑结构在计算机中的存储形式指数据的逻辑结构在计算机中的存储
4、形式.数据的数据的逻辑结构逻辑结构可以可以表示成多种存储结构表示成多种存储结构,不同的存储结不同的存储结构构,数据处理的效率不同数据处理的效率不同.第5页,共65页,编辑于2022年,星期五2、数据逻辑结构的两大结构、数据逻辑结构的两大结构线形结构线形结构和和非线形结构非线形结构的基本概念的基本概念 非空的数据结构非空的数据结构,满足下列条件则为线形结构满足下列条件则为线形结构(又称线性表又称线性表)(1)有且只有一个根结点有且只有一个根结点 (2)每个节点最多有一个前件每个节点最多有一个前件,也最多有一个后件也最多有一个后件.第6页,共65页,编辑于2022年,星期五1)、线形表的顺序存储结
5、构)、线形表的顺序存储结构 是计算机中存储线形表的最简单的方法是计算机中存储线形表的最简单的方法.两个基本特点两个基本特点:(1)线形表中所有元素所占的空间都是连续的。线形表中所有元素所占的空间都是连续的。(2)线形表中各数据元素在存储空间中是按逻辑顺序依次存放线形表中各数据元素在存储空间中是按逻辑顺序依次存放.第7页,共65页,编辑于2022年,星期五2)、线性链表)、线性链表 (1)概念概念:线性表的链式存储结构称为线形链表线性表的链式存储结构称为线形链表.(2)存储原理存储原理:把存储结点分成两部分把存储结点分成两部分,第一部分存储数据元素第一部分存储数据元素,第二第二 部分存储下一元素
6、的序号部分存储下一元素的序号(即存储结点的地址即存储结点的地址).(3)特点特点:各数据结点的存储序号是不连续的各数据结点的存储序号是不连续的,各结点在存储空间各结点在存储空间 中的位置与逻辑关系也不一致中的位置与逻辑关系也不一致.(4)特别说明特别说明 栈和队列也可以采用链式存储栈和队列也可以采用链式存储 。第8页,共65页,编辑于2022年,星期五3、栈及基本运算、栈及基本运算 (1)栈的概念栈的概念:栈是限定在一端插入与删除的栈是限定在一端插入与删除的线形表线形表.允许插入和删除端为栈顶允许插入和删除端为栈顶,另一端为栈底另一端为栈底,即满足即满足 ”先进后出先进后出”的原则的原则.FI
7、LO 或或LIFO“后进先出后进先出”(2)栈的基本运算栈的基本运算 入栈入栈:插入元素插入元素 出栈出栈:删除元素删除元素 读栈读栈:把栈顶元素赋给一个变量把栈顶元素赋给一个变量.第9页,共65页,编辑于2022年,星期五4、队列、队列 队列队列是允许在一端是允许在一端(队尾队尾)进行插入进行插入,而在另一端而在另一端(队头队头)进行删除的进行删除的线形表线形表.特点特点:“先进先出先进先出”FIFO 或或”后进后出后进后出”LILO 队列运算队列运算:入队入队:从队尾插入从队尾插入 退队退队:从队头删除从队头删除第10页,共65页,编辑于2022年,星期五三、树与二叉树三、树与二叉树1、概
8、念:、概念:树:树:是一种简单的非线形结构,所有元素都有明显的层次是一种简单的非线形结构,所有元素都有明显的层次 结构。树根,子结点,树叶结构。树根,子结点,树叶 度:度:一个结点所拥有的后件个数。一个结点所拥有的后件个数。树的度:树的度:所有结点中最大的度称为树的度。所有结点中最大的度称为树的度。深度:深度:树的最大层数称为树的深度,根结点是第一层。树的最大层数称为树的深度,根结点是第一层。第11页,共65页,编辑于2022年,星期五2、二叉树、二叉树二叉树:二叉树:非空二叉树只有一个根结点,每个结点最多有两非空二叉树只有一个根结点,每个结点最多有两 棵子树,且分别称为左子树,右子树。棵子树
9、,且分别称为左子树,右子树。特点特点 (1)在第)在第K层上,最多有层上,最多有2k-1(K=1)个结点)个结点 (2)深度为)深度为M的二叉树,最多有的二叉树,最多有2M-1个结点(深度指层数)个结点(深度指层数)(3)任何二叉树中,度为)任何二叉树中,度为0的结点(叶子)总比度为的结点(叶子)总比度为2的结的结 点多一个点多一个 (4)具有)具有n个结点的二叉树,深度至少为个结点的二叉树,深度至少为lon2n+1第12页,共65页,编辑于2022年,星期五3、完全二叉树和满二叉树、完全二叉树和满二叉树 完全二叉树完全二叉树 是指除最后一层外,每一层上的结点数均达到最大值,是指除最后一层外,
10、每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干结点。在最后一层上只缺少右边的若干结点。满二叉树(最多结点)满二叉树(最多结点)满二叉树是指除最后一层外,每一层上的所有结点有满二叉树是指除最后一层外,每一层上的所有结点有 两个子结点,则在第两个子结点,则在第K层上有层上有2k-1个结点,深度为个结点,深度为m的的 满二叉树有满二叉树有2m-1个结点。个结点。第13页,共65页,编辑于2022年,星期五4、二叉树的遍历、二叉树的遍历 遍历:是指不重复访问二叉树中的所有结点。遍历:是指不重复访问二叉树中的所有结点。三种遍历方式:三种遍历方式:前续遍历(前续遍历(DLR):):先访问根结点
11、,然后遍历左子树先访问根结点,然后遍历左子树,最后遍历右子树。最后遍历右子树。中序遍历(中序遍历(LDR):):首先遍历左子树,然后访问根结点,最后遍历右子树。首先遍历左子树,然后访问根结点,最后遍历右子树。后序遍历(后序遍历(LRD):):首先遍历左子树,然后遍历右子树,最后访问根结点。首先遍历左子树,然后遍历右子树,最后访问根结点。第14页,共65页,编辑于2022年,星期五1.7查找技术查找技术指在一个给定的数据结构中查找某个指定的元素。指在一个给定的数据结构中查找某个指定的元素。一、顺序查找:一、顺序查找:1、顺序查找效率低、顺序查找效率低2、只能用顺序查找的两种情况:、只能用顺序查找
12、的两种情况:无序表;无序表;有序表但采用链式存储结构。有序表但采用链式存储结构。3、长度为、长度为n的线性表,最坏情况下,顺序查找需比较的线性表,最坏情况下,顺序查找需比较n次次,最好一次最好一次比较就成功,平均情况下,要比较比较就成功,平均情况下,要比较n/2次。次。二、二分法查找:二、二分法查找:1、只适用顺序存储的有序表。、只适用顺序存储的有序表。2、最坏情况下,长度为、最坏情况下,长度为n的线性表需比较的线性表需比较log2n次次,最好一次比较就最好一次比较就成功。成功。第15页,共65页,编辑于2022年,星期五1.8排序技术排序技术l概念:概念:将一个无序序列整理成按值非递减顺序排
13、序的有序序列。将一个无序序列整理成按值非递减顺序排序的有序序列。l分类:分类:一、交换类排序一、交换类排序冒泡排序法冒泡排序法快速排序法快速排序法二、插入类排序法二、插入类排序法简单插入排序简单插入排序希尔排序希尔排序三、选择类排序法三、选择类排序法简单选择排序简单选择排序堆排序堆排序第16页,共65页,编辑于2022年,星期五排序方法排序方法插入排序插入排序选择排序选择排序交换排序交换排序归并排序归并排序简单插入排序简单插入排序希尔排序希尔排序简单选择排序简单选择排序堆排序堆排序冒泡排序冒泡排序快速排序快速排序第17页,共65页,编辑于2022年,星期五一、交换类排序l 冒泡排序法通过冒泡排
14、序法通过相邻数据元素的交换相邻数据元素的交换逐步将线性表变逐步将线性表变成有序。成有序。l分别从线性表的两端,比较相邻元素大小,大的下分别从线性表的两端,比较相邻元素大小,大的下沉,小的上浮,来回比较。沉,小的上浮,来回比较。l假设线性表的长度为假设线性表的长度为n,则在最坏的情况下,冒泡排序需,则在最坏的情况下,冒泡排序需要经过要经过n/2遍的从前往后的扫描和遍的从前往后的扫描和n/2遍的从后往前的扫遍的从后往前的扫描,需要的比较次数为描,需要的比较次数为n(n-1)/2。第18页,共65页,编辑于2022年,星期五快速排序法快速排序法l分割思想:选取一个元素,小于它的移到分割思想:选取一个
15、元素,小于它的移到前面,大于它的移到后面,不断分割。前面,大于它的移到后面,不断分割。l在最坏情况下需比较在最坏情况下需比较O(nlog2n)l在最好的情况下,需要比较在最好的情况下,需要比较n(n-1)/2第19页,共65页,编辑于2022年,星期五二、插入类排序法二、插入类排序法简单插入排序简单插入排序l将无序序列中的各元素依次插入到已有序的线性表中。将无序序列中的各元素依次插入到已有序的线性表中。l在最坏情况下,简单插入排序需要在最坏情况下,简单插入排序需要n(n-1)/2次比较。次比较。希尔排序希尔排序l基本思想是:将整个无序序列分割成若干小的子序列分别基本思想是:将整个无序序列分割成
16、若干小的子序列分别进行插入排序。按一定增量分组,增量逐渐减小。进行插入排序。按一定增量分组,增量逐渐减小。l最坏情况下,希尔排序所需要的比较次数为最坏情况下,希尔排序所需要的比较次数为O(n1.5)第20页,共65页,编辑于2022年,星期五三、选择类排序法简单选择排序简单选择排序l从中选出最小的元素,将它交换到表的最前面。从中选出最小的元素,将它交换到表的最前面。l简单选择排序在最坏情况下需比较简单选择排序在最坏情况下需比较n(n-1)/2次。次。堆排序堆排序l在最坏情况下需比较在最坏情况下需比较O(nlog2n)第21页,共65页,编辑于2022年,星期五排序总结好的情况:好的情况:n(n
17、-1)/2第22页,共65页,编辑于2022年,星期五练习:第23页,共65页,编辑于2022年,星期五l在长度为在长度为n的有序线性表中进行二分查找。最坏的情况下,的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为需要的比较次数为 。l长度为长度为n的顺序存储线性表中,当在任何位置上插入一个的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个元素概率都相等时,插入一个元素所需移动元素的平均个数为数为 。l假设线性表的长度为假设线性表的长度为n,则在最坏情况下,冒泡排序需要的,则在最坏情况下,冒泡排序需要的比较次数为比较次数为 A)log2n B
18、)n2 C)O(n1.5)D)n(n-1)/2第24页,共65页,编辑于2022年,星期五l 冒泡排序算法在最好的情况下的元素交换次数为冒泡排序算法在最好的情况下的元素交换次数为【1】。l在最坏情况下,堆排序需要比较的次数为在最坏情况下,堆排序需要比较的次数为【2】。l最简单的交换排序方法是最简单的交换排序方法是 A)快速排序快速排序 B)选择排序选择排序 C)堆排序堆排序D)冒泡排序冒泡排序l排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、序、【1】和选择排序等。和选择排序等。第25页,共65页,编辑于2022年,星
19、期五l在下列几种排序方法中,要求内存量最大的是 A)插入排序 B)选择排序 C)快速排序D)归并排序l希尔排序属于 A)交换排序 B)归并排序 C)选择排序D)插入排序第26页,共65页,编辑于2022年,星期五第二部分第二部分 程序设计基程序设计基 结构化程序设计、面向对象程序设计结构化程序设计、面向对象程序设计1、程序设计方法和风格、程序设计方法和风格(清晰第一、效率第二清晰第一、效率第二)(一)源程序文档化(一)源程序文档化 (1)符号名的命名应具有一定的实际含义,便于理解)符号名的命名应具有一定的实际含义,便于理解 (2)程序应加上一定的注释,序言性注释和功能性注释)程序应加上一定的注
20、释,序言性注释和功能性注释 (3)为使程序结构一目了然,可以利用空格、空行、)为使程序结构一目了然,可以利用空格、空行、缩进等技巧,是程序层次清晰缩进等技巧,是程序层次清晰 第27页,共65页,编辑于2022年,星期五(二)数据说明的方法(二)数据说明的方法 (1)数据说明的次序规范化)数据说明的次序规范化 (2)说明语句中变量安排有序化)说明语句中变量安排有序化 (3)使用注释来说明复杂数据的结构)使用注释来说明复杂数据的结构(三)语句的结构(三)语句的结构 (1)在一行内只写一条语句;尽量使用库函数。)在一行内只写一条语句;尽量使用库函数。(2)首先保证程序正确,然后再考虑提高效率。)首先
21、保证程序正确,然后再考虑提高效率。(3)避免使用临时变量而使程序的可读性下降)避免使用临时变量而使程序的可读性下降 (4)避免不必要的转移,避免采用复杂的条件语句)避免不必要的转移,避免采用复杂的条件语句 (5)要模块化,是模块功能尽可能单一化。)要模块化,是模块功能尽可能单一化。高内聚,低耦合高内聚,低耦合 (6)利用信息隐蔽,确保每个模块的独立性)利用信息隐蔽,确保每个模块的独立性 (7)不要修补不好的程序,要重新编写)不要修补不好的程序,要重新编写第28页,共65页,编辑于2022年,星期五(四)输入和输出(四)输入和输出 (1)对所有的输入数据都要检验数据的合法性)对所有的输入数据都要
22、检验数据的合法性 (2)检查输入项的各种重要组合的合理性)检查输入项的各种重要组合的合理性 (3)输入格式要简单,以使输入的步骤和操作简单)输入格式要简单,以使输入的步骤和操作简单 (4)输入数据时,应允许使用自由格式)输入数据时,应允许使用自由格式 (5)应允缺省值。)应允缺省值。(6)输入一批数据时,最好使用输入结束标志。)输入一批数据时,最好使用输入结束标志。(7)以交互输入)以交互输入/输出方式进行输入时,要采用人输出方式进行输入时,要采用人-机会机会 话给出明确的提示信息和运行的状态信息话给出明确的提示信息和运行的状态信息 (8)设计输出报表格式)设计输出报表格式第29页,共65页,
23、编辑于2022年,星期五2、结构化程序设计、结构化程序设计 (1)设计原则:)设计原则:自顶向下、逐步求精、模块化、限制使用自顶向下、逐步求精、模块化、限制使用GOTO语句语句 (2)结构化程序的结构)结构化程序的结构 顺序结构顺序结构 选择结构(分支结构)选择结构(分支结构)重复结构(循环结构)重复结构(循环结构)第30页,共65页,编辑于2022年,星期五3、结构化程序设计的具体实施中,注意要素、结构化程序设计的具体实施中,注意要素 (1)使用顺序、选择和循环三种基本控制结构表示程序)使用顺序、选择和循环三种基本控制结构表示程序 的控制结构。的控制结构。(2)选用的控制结构只许有一个入口和
24、一个出口)选用的控制结构只许有一个入口和一个出口 (3)程序模块化,每个模块也只能有一个入口和一个出口)程序模块化,每个模块也只能有一个入口和一个出口 (4)使用基本控制结构进行嵌套与组合来实现复杂结构)使用基本控制结构进行嵌套与组合来实现复杂结构 (5)用前后一致的方法来模拟)用前后一致的方法来模拟3种基本结构以外的控制结构种基本结构以外的控制结构 (6)严格控制)严格控制GOTO语句的使用语句的使用第31页,共65页,编辑于2022年,星期五4、面向对象程序设计、面向对象程序设计 优点优点 (1)与人类习惯的思维方法一致,面向对象的核心是对象)与人类习惯的思维方法一致,面向对象的核心是对象
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 公共 基础 部分 PPT 讲稿
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内