计算机软件技术之算法基础和数据结构基础_第1页
计算机软件技术之算法基础和数据结构基础_第2页
计算机软件技术之算法基础和数据结构基础_第3页
计算机软件技术之算法基础和数据结构基础_第4页
计算机软件技术之算法基础和数据结构基础_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第14讲算法基础和数据结构基础计算机基础科学系2007.08第7章计算机软件技术主要教学内容算法基础1数据结构基础2小结3计算机基础科学系学习目标1

了解算法的基本概念;掌握算法的三种基本结构;了解常见算法。2

掌握数据的逻辑结构、物理存储结构的基本概念。3

掌握线性列表、堆栈、队列的基本操作;掌握树和二叉树的概念;掌握二叉树的特点、性质和遍历方案。计算机基础科学系重点与难点

算法的概念、特征与设计原则,算法的描述与常用算法的实现思想为本讲的重点;数据结构的基本知识为本讲的难点。计算机基础科学系1.算法基础算法是指解决问题的方法和步骤,是对解决某一问题方案的准确描述。算法Algorithm如:求圆的面积问题(s=πr2)

,把这个问题交给计算机来处理,过程为先输入圆的半径,然后按面积计算公式计算,最后输出计算结果。描述如下:1.输入圆的半径2.计算圆的面积;s=πr2;3.输出圆的面积s;上述这种解决问题的方法就是一个算法。计算机基础科学系算法的特征有穷性有输入有输出确定性可行性算法中的每个步骤都能在有限时间内完成。算法中的所有运算都是基本的,都可以通过基本运算有限次实现之。算法的每一种运算有确定的意义,执行何种动作无二义性,目的明确。1.1算法的概念计算机基础科学系1.1算法的概念时间复杂度是指算法需要消耗的时间资源。

空间复杂度是指算法需要消耗的空间资源。算法执行时间的增长率和f(n)的增长率相同,记作:T(n)=O(f(n))

(a)x:=x+1(b)fori:=1tondox:=x+1(c)forj:=1tondofork:=1tondox:=x+1基本操作:加法操作时间复杂度:(a)O(1)(b)O(n)(c)O(n2)算法的复杂度计算机基础科学系算法设计的原则正确性高效率与低存储量需求可读性健壮性当输入的数据非法时,算法应当恰当地作出反映或进行相应处理。程序对于精心选择的、典型、苛刻且带有刁难性的几组输入数据能够得出满足要求的结果。计算机基础科学系1.2算法的三种基本结构分支结构包括简单分支与选择分支结构。选择分支结构可以根据设定的条件,判断应该选择哪一条分支来执行。顺序结构是指按程序语句行的编写顺序,逐条执行。循环结构是指按照一定的条件反复执行某一或某些处理步骤的结构。有两种循环语句:一种是先判断条件再执行循环体的结构称为当型循环结构;另一种是先执行循环体后判断条件的结构称为直到型循环结构。顺序分支循环计算机基础科学系1.2算法的三种基本结构输入/输出框处理框条件框起止框圆角矩形用于算法的起止平行四边形用于描述算法的输入与输出矩形用于算法数据的处理棱形框用于算法的判断有向箭头用于算法的流程指标计算机基础科学系1.2算法的三种种基本结构构图1算算法c=a+b的流程图输入a、b的值开始c=a+b结束输出c的值顺序计算机基础础科学系1.2算法的三种种基本结构构图2简简单分支图3选选择分支支条件语句组1否是条件语句组1是否语句组2分支图4把把两个数由由大到小输输出的算法法描述输出a、b是否a>b吗?输入a、b的值开始结束输出b、a例:计算机基础础科学系1.2算法的三种种基本结构构是条件循环体否图5当当型循环是否i<=99S=0i=1S=S+ii=i+2输出S开始结束图6计计算1+3+5+7+...+99的当型循环环循环例:计算机基础础科学系1.2算法的三种种基本结构构图7直到到型循环否条件循环体是否是i>99?S=0i=1S=S+ii=i+2开始结束输出S图8计计算1+3+5+7+...+99的直到型循循环循环例:计算机基础础科学系1.3常见算法介介绍i=1,a(1)=23,a(4)=8<23,j=4;a(1)与a(4)交换。i=2,a(2)=78,a(3)=45<78,j=3;a(4)=23<45,k=4;a(2)与a(4)交换。i=4,a(4)=78,a(5)=45<78,j=5;a(4)与a(5)交换。i=5,a(5)=78,a(6)=56<78,j=6;a(3)与a(5)交换。i=3,a(3)=45,a(5)=32<45,j=5;a(3)与a(5)交换。⑴选择排序序1.排序算算法计算机基础础科学系1.3常见算法介介绍第一步:从从最后一个个数开始与与前面的数数比较56>32,32>8,位置不不变;8<45,两两者交换位位置;8<78,交交换位置,,8<23,交换位位置。得出出最小值为为8。其它同理。。⑵冒泡排序序计算机基础础科学系1.3常见算法介介绍(3)插入入排序插入排序是是最常用的的排序技术术之一,经经常在扑克克牌游戏中中使用。游游戏人员将将每张拿到到的牌插入入到手中合合适的位置置,以便手手中的牌以以一定的顺顺序排列。。计算机基础础科学系1.3常见算法介介绍2.查找算算法⑴顺序查找找计算机基础础科学系1.3常见算法介介绍⑵折半查找找计算机基础础科学系1.3常见算法介介绍3.递归算算法计算机基础础科学系2.数据结构基基础数据数据元素数据项数据结构是在整个计计算机科学学与技术领领域上被广广泛使用的的术语,它被用来反反映一个数数据的内部部构成,即即一个数据据由哪些成成分数据构构成,以什什么方式构构成,呈什什么结构。数据结构构有逻辑结结构和物理理结构之分分。逻辑上上的数据结结构反映成成分数据之之间的逻辑辑关系,而而物理上的的数据结构构反映成分分数据在计计算机内部部的存储安安排,它是是数据结构构的实现形形式。数据据结构作为为一门学科科,研究的的内容主要要包括数据据的逻辑结结构、数据据的物理存存储结构及及对数据的的操作(或或算法)三三个方面。。计算机基础础科学系2.1线性列表线性表是一个含有有n≥0个结点(数数据元素))的有限序序列,其中中的结点,,有且仅有有一个开始始结点和一一个终端结结点,其他他结点有且且仅有一个个前驱和一一个后继结结点。线性表可分分为广义线线性表与限限制线性表表。广义线性表表:可以在在任何位置置插入与删删除数据;;限制线性表表:只能在在列表两端端增加与删删除数据,,如堆栈,,队列计算机基础础科学系2.2堆栈栈图10出出栈操作作栈的操作有有很多,基基本操作有有:入栈,出栈栈和空三种种。图9入入栈操作堆栈是一种执行行“后进先先出”算法法的数据结结构。计算机基础础科学系2.3队列列队列只允许在数数据表的前前端进行删删除操作,,而在数据据列表的后后端进行插插入操作。。图11计算机队列列计算机基础础科学系2.3队列列队列的操作作也很多,,基本操作作有:入列列、出列和和空三种图12入入列操作图13出出列操作计算机基础础科学系2.4树树的基本概概念二叉树根结点父结点子结点叶子结点兄弟结点的度树的高(深深)度计算机基础础科学系2.4树ABCDEFGHIJKLA:是根结点,同时是是B、C、D结点的父结点或双亲结点B:是E、F的父结点,,E、F是B的子结点或孩子结点J、K、L、F、G、I:是叶子节点点B的子孙为E、F、J、KB,C,D互为兄弟结点A的层次:1结点L的层次:4树的高度::4计算机基础础科学系2.4树树的种类有有很多,如如无序树、、有序树、、二叉树和和完全二叉叉树等。1、二叉树树的概念二叉树是每每个结点最最多有两个个子树的有有序树,这这两个子树分别称为左左子树和右右子树,而每一棵棵子树又是是二叉树。2、二叉树树的特点每个结点至至多只有二二棵子树,,二叉树的的子树有左左、右之分分,且其次次序不能颠颠倒二叉树的五五种基本形形态空二叉树仅有根结点右子树为空左子树为空左右子树均非空计算机基础础科学系2.4树3.二叉树树的性质性质1:二叉树的第第i层上至多有有2i-1(i1)个结点。证明:根据二叉树树的特点,,结论是显显然的。((用归纳法法证明)。性质2:深度为H的二叉树中中至多2H-1个结点。性质3:具有n个结点的二二叉树的最最小高度H为[log2n]+1。计算机基础础科学系2.4树(1)前序序遍历(NLR)(2)中序遍历(LNR)(3)后序遍历(LRN)访问根结点按照前序遍历顺序访问根根结点的左子树按照前序遍历顺序访问根根结点的右子树按中序遍历历顺序访问问根结点的的左子树访问根结点按中序遍历历顺序访问问根结点的的右子树按后序遍历顺顺序访问根结结点的左子树按后序遍历顺顺序访问根结结点的右子树访问根结点(4)二叉树树的遍历计算机基础科科学系2.4树前序遍历(根根左右):中序遍历(左根右):后序遍历(左右根):ABCDEFCBDAEFCDBFEA计算机基础科科学系小结所谓算法是指指解决问题的的方法与步骤骤,是对解决决某一问题方方案准确的描描述。算法的复杂度度是算法效率率的度量标准准之一,有时时间复杂度和和空间复杂度度之分。选择排序、冒冒泡排序与插插入排序时当当今计算机科科学中使用的的快速排序的的基础。二叉树是每个个结点最多有有两个子树的的有序树。计算机基础科科学系ThankYou!9、静夜四无无邻,荒居居旧业贫。。。12月-2212月-22Wednesday,December28,202210、雨中黄叶叶树,灯下下白头人。。。21:54:0821:54:0821:5412/28/20229:54:08PM11、以我独沈久久,愧君相见见频。。12月-2221:54:0821:54Dec-2228-Dec-2212、故人人江海海别,,几度度隔山山川。。。21:54:0821:54:0821:54Wednesday,December28,202213、乍见翻翻疑梦,,相悲各各问年。。。12月-2212月-2221:54:0821:54:08December28,202214、他乡乡生白白发,,旧国国见青青山。。。28十十二二月20229:54:08下下午21:54:0812月月-2215、比不了得得就不比,,得不到的的就不要。。。。十二月229:54下下午12月-2221:54December28,202216、行动出成果果,工作出财财富。。2022/12/2821:54:0821:54:0828December202217、做前,,能够环环视四周周;做时时,你只只能或者者最好沿沿着以脚脚为起点点的射线线向前。。。9:54:08下午午9:54下午午21:54:0812月-229、没有有失败败,只只有暂暂时停停止成成功!!。12月月-2212月月-22Wednesday,December28,202210、很多多事情情努力力了未未必有有结果果,但但是不不努力力却什什么改改变也也没有有。。。21:54:0821:54:0821:5412/28/20229:54:08PM11、成功就就是日复复一日那那一点点点小小努努力的积积累。。。12月-2221:54:0821:54Dec-2228-Dec-2212、世间成事,,不求其绝对对圆满,留一一份不足,可可得无限完美美。。21:54:0821:54:0821:54Wednesday,December28,202213、不不知知香香积积寺寺,,数数里里入入云云峰峰。。。。12月月-2212月月-2221:54:0821:54:08December28,202214、意志坚坚强的人人能把世世界放在在手中像像泥块一一样任意意揉捏。。28十十二月20229:54:08下午午21:54:0812月-2215、楚塞三湘接接,荆门九派派通。。。十二月229:54下下午12月-2221:54December28,202216、少年年十五五二十十时,,步行行夺得得胡马马骑。。。2022/12/2821:54:0821:54:0828December202217、空山新新雨后,,天气晚晚来秋。。。9:54:08下午午9:54下午午21:54:0812月-229、杨柳散散和风,,青山澹澹吾虑。。。12月-2212月-22Wednesday,December28,202210、阅读一切切好书如同同和过去最最杰出的人人谈话。21:54:0921:54:0921:5412/28/20229:54:09PM11、越是没有本本领的就越加加自命不凡。。12月-2221:54:0921:54Dec-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论