版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1-4算法的基本概念v第一章绪论见识算法图灵奖与算法Hoare在26岁发明了闻名于世的快速排序算法;Ronald、Shamir和Adleman发明了国际上最具影响力的公钥密码算法RSA;Knuth编著的《程序设计的艺术》奠定了数据结构与算法领域的主要内容;Floyd发明了求解多源点最短路径的Floyd算法以及堆结构;Karp在网络流和组合优化问题领域都发明了许多高效算法;
Hopcroft和他的学生Tarjan在数据结构和算法方面有众多创造性贡献;姚期智(Chi-ChihYao)发明了伪随机数的生成算法以及加密/解密算法;Sutherland发明的图形图像算法改善了屏幕刷新的文件显示;Dijkstra发明了单源点的最短路径算法Dijkstra算法;Wilkinson在数值线性代数方面发现很多有意义的算法;Blum发现了著名的算法设计技术——分支限界法……算法是计算机科学的基石三大学报文章概览见识算法算法及算法的特性学什么?算法的描述方法1-4-1算法及算法的特性v第一章绪论算法的起源算法的中文名称出自《周髀算经》(西周~秦汉)张仓《九章算术》创立的机械化算法体系今有三分之一,五分之二。问合之得几何?答曰:十五分之十一。又有三分之二,七分之四,九分之五。问合之得几何?答曰:得一、六十三分之五十。又有二分之一,三分之二,四分之三,五分之四。问合之得几何?答曰:得二、六十分之四十三。合分(分数相加)术(算法)曰:母(分母)互乘子(分子),并以为实(被除数),母相乘为法(除数),实如(除以)法而一。不满法者,以法命之,其母同者,直相从(加)之。欧几里得《几何原本》创立的逻辑演绎体系世界数学的两大体系算法的英文名称来自于波斯数学家阿勒·霍瓦里松《代数对话录》
(公元825年)Algorithm在Webster'sNewWorldDictionary(1957版)中尚未出现Algorithm——算法;Logarithm——对数;Algorism——算术欧几里得算法被人们认为是史上第一个算法算法的起源张仓《九章算术》创立的机械化算法体系欧几里得《几何原本》创立的逻辑演绎体系世界数学的两大体系算法的定义输入操作步骤:
1.………2.………3.………算法
:是对特定问题求解步骤的一种描述,是指令的有限序列算法不是问题的答案,而是解决问题的操作步骤1.柿子切块,鸡蛋加适量盐搅拌2.锅里放油3.把鸡蛋倒进去炒熟4.加入葱花5.把柿子放进去放少许盐和味精6.翻炒几下出锅装盘木须柿子的做法:输出算法的操作步骤应该满足什么要求?(1)有穷性:总是在执行有穷步之后结束,且每一步都在有穷时间内完成每一条指令都不是无限循环!有穷不是数学意义上的概念!算法的特性输入操作步骤:
1.………2.………3.………输出(1)有穷性:总是在执行有穷步之后结束,且每一步都在有穷时间内完成(2)确定性:每一条指令必须有确切的含义,相同的输入得到相同的输出上下文无关算法的操作步骤应该满足什么要求?算法的特性输入操作步骤:
1.………2.………3.………输出(3)可行性:操作步骤可以通过已经实现的基本操作执行有限次来实现(1)有穷性:总是在执行有穷步之后结束,且每一步都在有穷时间内完成(2)确定性:每一条指令必须有确切的含义,相同的输入得到相同的输出机器可执行算法的操作步骤应该满足什么要求?算法的特性输入操作步骤:
1.………2.………3.………输出步骤1:找出
m的所有质因子步骤2:找出
n的所有质因子步骤3:从第1步和第2步得到的质因子中找出所有公因子步骤4:将找到的所有公因子相乘,结果即为
m和
n的最大公约数【想法】将这两个自然数分别进行质因数分解,然后找出所有公因子并将这些公因子相乘。例如,48=2×2×2×2×3,36=2×2×3×3,公因子有2、2、3,因此,48和36的最大公约数为2×2×3=12。例1-12设计算法求两个自然数的最大公约数。【算法】设两个自然数是m和n,算法如下:满足算法的特性吗?如何找出所有质因子?如何找出所有公因子?质因数分解尚未找到多项式时间算法不满足确定性、有穷性!算法的特性好算法的特性(1)正确性:算法能满足具体问题的需求,即对于任何合法的输入,算法都会得出正确的结果。一个算法满足什么特性才能称之为好算法呢?(4)抽象分级:用合适的抽象分级组织表达算法的思想,
启发式规则7±2。(2)健壮性:算法对非法输入的抵抗能力,即对于错误的输入,算法应能识别并做出处理,而不是产生错误动作或陷入瘫痪。(3)可理解性:算法容易理解和实现。(5)高效性:具有较短的执行时间并占用较少的辅助空间。米勒原则:人类的短期记忆能力一般限于一次记忆
5~9
个对象1-4-2算法的描述方法v第一章绪论欧几里得算法辗转相除求两个自然数的最大公约数(古希腊(公元前300年))m
n
r35252510105【想法——基本思路】设两个自然数为m和
n,欧几里得算法的基本思想是将
m和
n辗转相除直到余数为01050自然语言描述算法【算法——自然语言描述】设两个自然数为m和
n,欧几里得算法如下:步骤1:将m除以n得到余数r;步骤2:若r等于0,则n为最大公约数,算法结束;否则执行步骤3;步骤3:将n的值放在m中,将r的值放在n中,重新执行步骤1;优点:容易理解;缺点:冗长、二义性使用方法:粗线条描述算法思想;注意事项:避免写成自然段辗转相除求两个自然数的最大公约数(古希腊(公元前300年))流程图描述算法优点:流程直观缺点:缺少严密性、灵活性使用方法:描述简单算法注意事项:注意抽象层次【算法——流程图描述】设两个自然数为m和
n,算法为开始结束r=m%nr=0m=nn=r输出nY辗转相除求两个自然数的最大公约数(古希腊(公元前300年))程序语言描述算法【算法——程序语言描述】设两个自然数为m和
n,算法为优点:能由计算机执行缺点:抽象性差,对语言要求高使用方法:算法需要验证注意事项:将算法写成子函数辗转相除求两个自然数的最大公约数(古希腊(公元前300年))伪代码描述算法什么是伪代码呢?伪代码:介于自然语言和程序设计语言之间的方法,它采用某一程序设计语言的基本语法,操作指令可以结合自然语言来设计。伪代码有标准吗?伪代码不是一种实际的编程语言,但在表达能力上类似于编程语言,同时极小化了描述算法的不必要的技术细节伪代码被称为“算法语言”或“第一语言”【算法——伪代码描述】设两个自然数为m和
n,算法为优点:表达能力强,抽象性强,
容易理解,容易实现使用方法:7±2伪代码描述算法辗转相除求两个自然数的最大公约数(古希腊(公元前300年))米勒原则:人类的短期记忆能力一般限于一次记忆
5~9
个对象输入:两个自然数m和n输出:m和n的最大公约数1.r=m%n;2.循环直到r等于02.1m=n;2.2n=r;2.3r=m%n;3.输出n;intCommonFactor(intm,intn){intr=m%n;while(r!=0){m=n;n=r;r=m%n;}returnn;}只描述子函数;省略主函数和头函数伪代码描述算法辗转相除求两个自然数的最大公约数(古希腊(公元前300年))【算法——伪代
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 加强风险控制价值增量保障
- 2025 九年级数学上册概率游戏规则设计课件
- 基于2025年技术创新的新能源汽车电池回收再利用产业链协同可行性研究
- 2025年全球5G基站建设规划报告
- 2025年医疗隔离膜抗菌技术行业分析报告
- 生态农业循环经济产业园2025年生态农业示范区建设可行性研究报告
- 2025年虚拟仿真技术在职业教育中的应用价值探索报告
- 党建街道协议书
- 交通执法协议书
- 中俄军事协议书
- 2022年5月CATTI英语三级口译实务真题(最全回忆版)
- 画法几何知到章节答案智慧树2023年浙江大学
- 少年宫剪纸社团活动记录
- 生命科学前沿技术智慧树知到答案章节测试2023年苏州大学
- GB/T 15171-1994软包装件密封性能试验方法
- 外科护理学期末试卷3套18p
- 人员出车次数统计表
- 飞行区培训题库
- 新苏教版2022-2023六年级科学上册《专项学习:像工程师那样》课件
- 幕墙装饰施工组织设计
- 科傻软件使用说明书
评论
0/150
提交评论