算法和数据结构.ppt





《算法和数据结构.ppt》由会员分享,可在线阅读,更多相关《算法和数据结构.ppt(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、3.4 算法和数据结构算法和数据结构3.4.1 算法算法3.4.2 数据结构数据结构23.4 算法和数据结构3.4.1 算法算法33.4 算法和数据结构计算机计算机求解问题的步骤求解问题的步骤(1)确定并理解问题;确定并理解问题;(2)寻找解决问题的方法与步骤,并将其表示成寻找解决问题的方法与步骤,并将其表示成算法算法(Algorithm);(3)使用某种程序设计语言描述该算法使用某种程序设计语言描述该算法(编程编程),并进行调试;并进行调试;(4)运行程序,获得问题的解答;运行程序,获得问题的解答;(5)进行评估,改进算法和程序进行评估,改进算法和程序43.4 算法和数据结构1.什么是算法?
2、什么是算法?53.4 算法和数据结构算法是解决问题的方法与步骤算法是解决问题的方法与步骤n例:有三个硬币,其中一个是例:有三个硬币,其中一个是伪造的,另两个是真的,伪币伪造的,另两个是真的,伪币与真币重量略有不同。现在提与真币重量略有不同。现在提供一座天平,供一座天平,如何如何找出伪币呢找出伪币呢?n分析:分析:n方法明确而有序方法明确而有序n按提供的条件进行操作按提供的条件进行操作n任何人均可仿照进行任何人均可仿照进行(共享共享智能智能)开始开始C是伪币是伪币B是伪币是伪币A是伪币是伪币AB?AC?是是否否否否是是63.4 算法和数据结构2.算法设计举例算法设计举例73.4 算法和数据结构例
3、:对整数进行排序例:对整数进行排序n问题:任给一组问题:任给一组(n个个)整数,将它们从小到大进行排序整数,将它们从小到大进行排序n粗略的思路:粗略的思路:从所有整数中选一个最小的,作为已排序的第一个数从所有整数中选一个最小的,作为已排序的第一个数 从剩下未排序整数中选最小的数,添加到已排序整数的后面从剩下未排序整数中选最小的数,添加到已排序整数的后面 反复执行步骤反复执行步骤,直到所有整数都处理完毕,直到所有整数都处理完毕n进一步细化:进一步细化:n把待排序的整数放在一个数组把待排序的整数放在一个数组A中,每个整数是数组中,每个整数是数组A中的一中的一个元素:个元素:A1,A2,A3,An,
4、n排好序的元素在排好序的元素在A的前面部分,无序的元素留在后面,每的前面部分,无序的元素留在后面,每“循循环环”一次,有序部分增加一次,有序部分增加1个元素,无序部分减少个元素,无序部分减少1个元素个元素n每次每次“循环循环”只需在数组的无序元素部分选出最小的数只需在数组的无序元素部分选出最小的数n反复进行反复进行n-1次即可得到排序后的结果次即可得到排序后的结果83.4 算法和数据结构“直接选择排序直接选择排序”算法举例算法举例2345789第第6次循环后,排序结束次循环后,排序结束2937845与首元素交换,第与首元素交换,第1次循环结束次循环结束4937825数组的初态,全部是未排序元素
5、数组的初态,全部是未排序元素4937825在未排序元素中确定最小数位置在未排序元素中确定最小数位置2397845与首元素交换,第与首元素交换,第2次循环结束次循环结束2937845在未排序元素中确定最小数位置在未排序元素中确定最小数位置2347895与首元素交换,第与首元素交换,第3次循环结束次循环结束2397845在未排序元素中确定最小数位置在未排序元素中确定最小数位置93.4 算法和数据结构3.算法的表示算法的表示103.4 算法和数据结构算法的表示方法算法的表示方法n文字说明文字说明n流程图表示流程图表示n用用N-S盒图表示算法盒图表示算法n用用PAD图描述算法图描述算法n伪代码(一种介
6、于自然语言和程序设计语言之间伪代码(一种介于自然语言和程序设计语言之间的文字和符号表达工具)的文字和符号表达工具)113.4 算法和数据结构自然语言描述自然语言描述n“比较与的重量,若,则是伪造的;比较与的重量,若,则是伪造的;否则再比较与的重量,若,则是伪否则再比较与的重量,若,则是伪造的;否则是伪造的。造的;否则是伪造的。”n缺点:缺点:n容易产生歧义,容易产生歧义,很难很难“精确精确”地进行表达地进行表达n叙述冗长,很难清楚地表达算法的逻辑流程叙述冗长,很难清楚地表达算法的逻辑流程123.4 算法和数据结构算法的流程图表示算法的流程图表示n流程图由结点和有向边构成,它描述了算法所执行操流
7、程图由结点和有向边构成,它描述了算法所执行操作的顺序及执行操作的条件作的顺序及执行操作的条件n流程图符号流程图符号:n比文字描述简明,但当算法比文字描述简明,但当算法比较复杂时,理解困难,容比较复杂时,理解困难,容易产生错误易产生错误 端点符端点符处理处理判断判断预定义功能预定义功能原始数据放在原始数据放在数组数组A中;令中;令 i=1确定确定Ai到到An中最中最小整数的位置小整数的位置,设为设为jAi 和和Aj交换位置交换位置i=i+1i=n?结束结束开始开始133.4 算法和数据结构求最大公约数的伪代码表示求最大公约数的伪代码表示算法算法3:辗转相除法求最大公约数:辗转相除法求最大公约数B
8、EGIN input m,n;/*输入正整数输入正整数m和和n*/do rm mod n;m n;n r;while r0;print m;/*输出最大公约数输出最大公约数*/ENDYNr不等于不等于0?输出输出m的值的值输入正整数输入正整数m和和n开始开始结束结束rm被被n除的余数除的余数m n;n r143.4 算法和数据结构4.算法的分析算法的分析153.4 算法和数据结构算法分析的基本内容算法分析的基本内容n正确性:给定有效输入后,经过有限时间的计算,正确性:给定有效输入后,经过有限时间的计算,产生正确的输出结果产生正确的输出结果n简单性简单性n 算法是否容易理解,是否容易验证其正确性
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 数据结构

限制150内