C++之算法设计与实现ppt课件.pptx

上传人:牧羊曲112 文档编号:2002322 上传时间:2022-12-30 格式:PPTX 页数:11 大小:494.66KB
返回 下载 相关 举报
C++之算法设计与实现ppt课件.pptx_第1页
第1页 / 共11页
C++之算法设计与实现ppt课件.pptx_第2页
第2页 / 共11页
C++之算法设计与实现ppt课件.pptx_第3页
第3页 / 共11页
C++之算法设计与实现ppt课件.pptx_第4页
第4页 / 共11页
C++之算法设计与实现ppt课件.pptx_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《C++之算法设计与实现ppt课件.pptx》由会员分享,可在线阅读,更多相关《C++之算法设计与实现ppt课件.pptx(11页珍藏版)》请在三一办公上搜索。

1、算法设计与实现构造算法解决问题按照自顶向下、逐步求精的方式进行使用程序设计语言编程实现典型示例素性判定问题最大公约数问题,判断给定的某个自然数 n(大于 2)是否为素数算法逻辑输入:大于 2 的正整数 n输出:该数是否为素数,若为素数返回 true,否则返回 false步骤 1:设除数 i 为 2步骤 2:判断除数 i 是否已为 n,若为真返回 true,否则继续步骤 3:判断 n % i 是否为 0,若为 0 返回 false,否则继续步骤 4:将除数 i 递增,重复步骤 2,验证其为算法:对照算法五个基本特征证明算法正确测试算法,bool IsPrime( unsigned int n )

2、 unsigned int i = 2; while( i n ) if( n % i = 0 ) return false; i+; return true;,bool IsPrime( unsigned int n ) unsigned int i = 2; while( i = (unsigned int)sqrt(n) ) if( n % i = 0 ) return false; i+; return true;,为什么可以使用 sqrt(n) 代替 n?sqrt 为标准库中的求平方根函数,bool IsPrime( unsigned int n ) unsigned int i =

3、 3; if( n % 2 = 0 ) return false; while( i = (unsigned int)sqrt(n) ) if( n % i = 0 ) return false; i += 2; return true;,第三版有什么改进?,bool IsPrime( unsigned int n ) unsigned int i = 3; if( n % 2 = 0 ) return false; while( i = (unsigned int)sqrt(n) + 1 ) if( n % i = 0 ) return false; i += 2; return true;

4、,第四版有什么改进?,bool IsPrime( unsigned int n ) unsigned int i = 3, t = (unsigned int)sqrt(n) + 1; if( n % 2 = 0 ) return false; while( i = t ) if( n % i = 0 ) return false; i += 2; return true;,第五版有什么改进?,算法选择的权衡指标正确性:算法是否完全正确?效率:在某些场合,对程序效率的追求具有重要意义可理解性:算法是否容易理解,也是必须要考虑的算法评估:衡量算法的好坏,主要是效率,求两个正整数 x 与 y 的最

5、大公约数函数原型设计unsigned int gcd( unsigned int x, unsigned int y );,unsigned int gcd( unsigned int x, unsigned int y ) unsigned int t; t = x y ? x : y; while( x % t != 0 | y % t != 0 ) t-; return t;,unsigned int gcd( unsigned int x, unsigned int y ) unsigned int r; while( true ) r = x % y; if( r = 0 ) return y; x = y; y = r; ,输入:正整数 x、y输出:最大公约数步骤 1:x 整除以 y,记余数为 r步骤 2:若 r 为 0,则最大公约数即为 y,算法结束步骤 3:否则将 y 作为新 x,将 r 作为新 y,重复上述步骤,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号