- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
西南科技大学计算机学院软件教研室 Fundamentals of Computer Algorithms 西南科技大学计算机学院软件教研室 计算机算法分析与设计 任课教师:袁 宁 ise_yuann@ujn.edu.cn 济南大学信息学院计算机软件教研中心 学习目标 掌握算法分析与设计的基本理论 掌握进行算法分析与设计的基本方法(时间、空间复杂度分析,算法正确性的证明) 掌握计算机领域中常用的非数值计算方法,并学会用这些算法解决实际问题 课程要求 教学方式:理论(34学时),实践(14学时) 考核方式:考试(70%)+考勤和平时作业(20%)+上机实验(10%) 课程学分:3 先修课程:《离散数学》《数据结构》《数值分析》《C语言程序设计》 授课教材 选用教材: 《算法设计方法》 吴哲辉等 机械工业出版社 参考书目: 《计算机算法基础》(第二版) 余祥宣等 华中科技大学出版社 《算法引论》 张益新,沈雁 国防科技大学出版社 第一章 导引 ---计算机算法分析与设计是面向设计的、处于核心地位的教育课程 ---计算机算法是计算机科学和计算机应用的核心。 1.2 算法的描述 算法主要包含两个方面的内容: 算法设计:主要研究怎样针对某一特定类型的问题设计出求解步骤。 算法分析:讨论所设计出来的算法步骤的正确性和复杂性。 对于设计出来的一类问题的求解步骤,需要一种表达方式,即算法描述。 算法的基本思想:轻者(小的元素)像气泡那样从水底往上浮。 在排序过程中,每次把相邻的两个元素作比较,当前面的元素大于后面的元素时,就交换它们的位置。 这样,所有相邻的元素比较一遍以后最大的元素就被交换到了最后面。依此类推,直到把最后两个元素排好序。 算法1.1 冒泡排序 输入:待排序数组A,其中有n个元素; 输出:排好序的数组A。 bubblesort(float A[ ], int n) { int i , j; for (i=0; in-1; i++) for (j=0; jn-1-i; j++) if (A[j]A[j+1]) swap(A+j, A+j+1); } 算法1.2 元素交换 输入:待交换元素的位置x和y; 输出:交换后的结果仍存于x和y中。 swap (float *x, float *y) { float u = *x; *x = *y; *y = u; } 例1.2 求两个正整数m,n的最大公约数 求最大公约数的辗转相除算法基本思想: 用小的数作除数,大的数作为被除数,做除法求余,如果余数等于零,那么小的数就是两个数的最大公约数。 否则用小的数做被除数,余数作为除数,再做除法求余,如此辗转相除下去,直到余数等于零。那时的除数就是要求的原本两个数的最大公约数。 例1.2 求两个正整数m,n的最大公约数 欧几里得算法描述: 输入:正整数m和n 输出:m和n的最大公因子 第一步:求余数。r?m%n 第二步:判断r=0?,若是,终止(n为答案),否则,转第三步。 第三步:互换,m?n,n?r,返回第一步。 求两个正整数最大公因子的一个实例 假设 m=21 和 n=45,求21和45的最大公因子 第一步:r=m%n=21%45=21; 第二步:r 不等于0,转入第三步; 第三步:互换,m=n=45, n=r=21,返回第一步。 第一步:r=m%n=45%21=3; 第二步:r 不等于0,转入第三步; 第三步:互换,m=n=21, n=r=3,返回第一步。 第一步:r=m%n=21%3=0; 第二步:r 等于0,算法结束,3即为21和45的最大公因子。 算法1.3 求最大公约数的辗转相除法 输入:两整数m和n; 输出:m和n的最大公约数。 int gcd(int m, int n) { int a=max{m,n}; int b=min{m,n}; int c; while (b!=0) { c=a mod b; a=b; b=c; } return (a); } 算法1.4 求最大公约数的递归算法 输入:两整数m和n; 输出:m和n的最大公约数。 int gcd(int m, int n) { int a=max{m,n}; int b=min{m,n}; int c; if (b == 0) return (a); else { c=a mod b; return( gcd(b , c) ); } } 例1.3 多项式求值的Horner算法 Horner根据等式 设计出一个高效算法。
您可能关注的文档
最近下载
- 05SG522钢与混凝土组合楼屋盖05SG522钢与混凝土组合楼屋盖.pdf VIP
- 中国糖尿病防治指南(2024版)解读PPT课件.pptx VIP
- 注水井测试资料整理与分析.ppt VIP
- 儿童支气管哮喘诊断与防治指南(2025).pptx VIP
- 农村饮水安全工程施工方案施工方法及措施.pdf VIP
- 基孔肯雅热诊疗方案(2025年版).ppt
- 专题07 名词性从句和定语从句-2020-2024年五年高考英语真题分类汇编(全国版)(解析版).docx VIP
- 狭窄性腱鞘炎的护理.pptx VIP
- 《GB+40875-2021油轮单点系泊作业安全要求》最新解读.pptx
- ZAPI(萨牌)控制器ACE2 重要参数以及调试步骤.pdf VIP
文档评论(0)