- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章优化算法和程序设计方法 本章要点 4.1 优化算法—有趣的4个自然数 4.2 解不定方程式 4.3 求300以内的素数和 4.4 两个数的最大公约数与最小公倍数 4.5 字符三角形图案 4.6 逻辑推理——谁是跳水运动员 4.7 不同进制数之间的转换 习题 4 4.1 优化算法—有趣的4个自然数 4.1 优化算法—有趣的4个自然数 4.1 优化算法—有趣的4个自然数 4.1 优化算法—有趣的4个自然数 4.1 优化算法—有趣的4个自然数 4.1 优化算法—有趣的4个自然数 4.2 解不定方程式 4.2 解不定方程式 4.2 解不定方程式 4.2 解不定方程式 4.3 求300以内的素数和 4.3 求300以内的素数和 4.3 求300以内的素数和 4.3 求300以内的素数和 4.3 求300以内的素数和 4.4 两个数的最大公约数与最小公倍数 4.4 两个数的最大公约数与最小公倍数 4.4 两个数的最大公约数与最小公倍数 4.5 字符三角形图案 4.5 字符三角形图案 4.6 逻辑推理——谁是跳水运动员 4.6 逻辑推理——谁是跳水运动员 4.6 逻辑推理——谁是跳水运动员 4.6 逻辑推理——谁是跳水运动员 4.6 逻辑推理——谁是跳水运动员 4.7 不同进制数之间的转换 4.7 不同进制数之间的转换 4.7 不同进制数之间的转换 4.7 不同进制数之间的转换 * * 4.1.1 算法分析 程序设计人员总希望能够设计出一个好的算法。一个好的算法应具有正确性、可读性、键壮性、易测试性、可移植性和运行效率高等性能。在一个算法编出来之后,主要应从以下几个方面进行算法性能的评估。 1.算法的正确性和可读性 (1)算法的正确性:被评估的算法首先应该是正确的。正确的算法应该能够完成预定的任务,达到设计的要求。当输入一组合理的数据时,能够在有限的时间内得到正确的结果。算法的正确性是算法评估的前提,是评估算法中最基本和最重要的特性。 对于一些算法,只能够验证算法是否有错,不能证明算法是否无错,也就是说只要找出一组数据使算法的计算结果不正确,就能证明该算法是错误的。但要验证算法的正确性,应当对所有合法的输入数据都能得到应该得到的结果。要想验证这一点有时是很困难的,输入所有不同数据的数量是非常大的,逐一验证所有的数据有时很难现实。因此,即使算法有错误,也不一定能在短时间内发现。 (2)算法的可读性:算法不仅能够保证计算机的正确运行,而且还要供其他人阅读和进行交流。因此,算法应具有可读性好的特点,这样有助于人们对算法的理解。可读性差的程序难以测试和修改,同时容易隐藏较多的错误。 2.算法的易测试性和健壮性 (1)算法的易测试性:为了验证算法的正确性,需要用若干组数据进行调试。测试用的数据应是典型的和有代表性的输入数据,从而可以保证算法对“所有的”数据的正确性。有时,可以通过验证程序来替代人工的数据输入,完成算法正确性的验证。对于一种算法,还应该考虑在进行测试时,它的测试数据应比较好输入,相应的测试程序应比较容易制作。 (2)算法的健壮性:当输入的数据是非法时,算法也能作出相应的反应或进行相应的处理,而不会产生莫明其妙的输出结果。 3.算法的运行效率 一个算法的运行效率同样包括运行时间、存储器效率和输入/输出效率3个方面,一般算法的运行效率主要是指其对时间和空间的需求,也就是要估计一下按算法编制的程序在计算机上执行所耗费时间和所占用的内存空间。一个好的算法应尽量少占用存储空间,同时又具有尽量快的数据处理速度。对于同一个问题如果有多个算法可以解决,执行速度快的算法时间效率高,占用空间少的算法空间效率高。当然二者都与问题的规模有关,对于在10个数据中进行选择和在1000个数据中进行选择,执行程序所用的时间和占用的内存空间显然是不一样的。 在上述的几个方面中,评价算法性能最主要的是算法的正确性和算法的运行效率。而在实际进行算法分析时,分析算法的运行效率一般只讨论算法的时间效率。 4.1.2 算法的时间复杂度和空间复杂度 1.算法的时间复杂度 算法的执行时间是通过依据该算法所编制的程序在计算机上运行所消耗的时间来度量的。一个用高级程序语言编写的程序在计算机上运行时所消耗的时间与下列要素有关。 ① 问题的规模,显示100以内的裴波纳契数列数和显示10 000以内的裴波纳契数列数,显然问题的规模是不一样的,所用的算法的执行时间是不一样的。 ② 程序中语句的执行次数。 ③ 所用程序设计语言的执行效率。 ④ 编译程序所产生的机器代码质量,计算机
您可能关注的文档
- 中级微观经济学——理论与应用(第10版)(经济学经典教材·双语教学用书)尼克尔森等著0324319681_67673上课用课件.ppt
- 中级微观经济学——理论与应用(第10版)(经济学经典教材·双语教学用书)尼克尔森等著0324319681_67674上课用课件.ppt
- 中级微观经济学——理论与应用(第10版)(经济学经典教材·双语教学用书)尼克尔森等著0324319681_67675上课用课件.ppt
- 中级微观经济学——理论与应用(第10版)(经济学经典教材·双语教学用书)尼克尔森等著0324319681_67676上课用课件.ppt
- 中级微观经济学——理论与应用(第10版)(经济学经典教材·双语教学用书)尼克尔森等著0324319681_67677上课用课件.ppt
- 中级微观经济学——理论与应用(第10版)(经济学经典教材·双语教学用书)尼克尔森等著0324319681_67680上课用课件.ppt
- 中文AutoCAD案例教程普通高等教育“十一五”国家级规划教材曾萍沈大林第4章绘制轴测图与装配1上课用课件.ppt
- 中文AutoCAD案例教程普通高等教育“十一五”国家级规划教材曾萍沈大林第5章绘制三维立体图形1上课用课件.ppt
- 中文AutoCAD案例教程普通高等教育“十一五”国家级规划教材曾萍沈大林第6章图形的标注与文本1上课用课件.ppt
- 中文AutoCAD案例教程普通高等教育“十一五”国家级规划教材曾萍沈大林第7章打印和输出图形1上课用课件.ppt
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
文档评论(0)