版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Algorithm第4章
算法2035主讲:王红梅4.14.24.34.4算法那些事算法概述搜索算法机器学习目录CONTENTS4.5神经网络与深度学习扩展:循环神经网络4.64.2.1什么是算法?4.2.2如何描述算法?4.2.3算法实现案例:冒泡算法4.2.4实现算法常用的数据结构4.2.5算法和程序的关系
算法是指计算机等设备用来进行计算或者解决问题的方法和步骤。4.2.1什么是算法?算法和食谱类比听着好高深哦!可到底什么是算法!4.2.1什么是算法?找2组同学,每组5个人到教室前面再找2个同学,分别对上面的两组进行排列问全体同学对排列满意吗?让排列的同学分享他们为什么要这样排,他们是怎么做到的?4.2.1什么是算法?-【场景模拟】学生一般是这么排的...4.2.1什么是算法?-【场景模拟】12354从低到高54321从高到低12345但这是人的思维,而不是机器思维!那机器思维是啥?5个人,按高低个的排列需要排4轮,第一轮:全5个人,比较4次,找出最高个子,排在5个人的最后4.2.1什么是算法?-【场景模拟】第一次比较。每次比较高的后移。5个人,按高低个的排列需要排4轮,第一轮:全5个人,比较4次,找出最高个子,排在5个人的最后4.2.1什么是算法?-【场景模拟】第二次比较。每次比较高的后移。5个人,按高低个的排列需要排4轮,第一轮:全5个人,比较4次,找出最高个子,排在5个人的最后4.2.1什么是算法?-【场景模拟】第二次比较。每次比较高的后移。5个人,按高低个的排列需要排4轮,第一轮:全5个人,比较4次,找出最高个子,排在5个人的最后4.2.1什么是算法?-【场景模拟】第三次比较。每次比较高的后移。5个人,按高低个的排列需要排4轮,第一轮:全5个人,比较4次,找出最高个子,排在5个人的最后4.2.1什么是算法?-【场景模拟】第四次比较。每次比较高的后移。5个人,按高低个的排列需要排4轮,第一轮:全5个人,比较4次,找出最高个子,排在5个人的最后4.2.1什么是算法?-【场景模拟】第四次比较。每次比较高的后移。5个人,按高低个的排列需要排4轮,第一轮:全5个人,比较4次,找出最高个子,排在5个人的最后4.2.1什么是算法?-【场景模拟】第四次比较。每次比较高的后移。5个人,按高低个的排列需要排4轮,第二轮:前4个人,比较3次,找出最高个子,排在4个人的最后4.2.1什么是算法?-【场景模拟】5个人,按高低个的排列需要排4轮,第二轮:前4个人,比较3次,找出最高个子,排在4个人的最后4.2.1什么是算法?-【场景模拟】5个人,按高低个的排列需要排4轮,第三轮:前3个人,比较2次,找出最高个子,排在3个人的最后4.2.1什么是算法?-【场景模拟】5个人,按高低个的排列需要排4轮,第四轮:前2个人,比较1次,找出最高个子,排在2个人的最后4.2.1什么是算法?-【场景模拟】5个人,按高低个的排列需要排4轮,全部完成排序4.2.1什么是算法?-【场景模拟】5个人,按高低个的排列需要排4轮,全部完成排序4.2.1什么是算法?-【场景模拟】这种对一件事情的处理思路和方法就是算法或算法指的是解决问题或完成任务的一系列步骤集合。4.2.1什么是算法?-【场景模拟】讨论:生活中还有哪些算法呢?你都是怎么描述的呢?请举例自己班的学生日常生活中处处都有。如乐谱是乐队演奏的算法,菜谱是做菜肴的算法,珠算口诀是使用算盘的算法。设计出一个解决问题的算法,也需要用能被算法执行者理解的形式加以呈现,才能被算法执行者理解并执行。算法的这种呈现就称为算法的描述。如何描述算法4.2.2如何描述算法?常见的算法描述方式:1.自然语言描述2.流程图描述3.伪代码描述4.程序设计语言描述4.2.2如何描述算法?1.自然语言
自然语言描述就是用我们熟悉的语言来描述算法,在进行3个整数求最大值的问题中,我们可以这样描述:我们把求最大值的三个整数,分别放在A,B,C中,把最大值命名为Max。第一步:我们先假定A是最大值,把A给Max;第二步:把B和Max比较,如果B大于Max,就把B再次赋给Max,否则不变;第三步:把C和Max比较,如果C大于Max,就把C再次赋给Max,否则不变;第四步:结束,输出Max的值,就是最大值。4.2.2如何描述算法?2.流程图
常说一图胜千言,流程图就是算法的图形化表示了,为了人人都能看懂流程图,往往对流程图中的符号约定如下:(1)流程图的开始和结束,用椭圆框表示;(2)平行四边形框表示输入输出框,用于输入数据和输出数据;(3)矩形框用于表示业务处理;(4)菱形框表示判断,判断有两个分支(满足条件或者不满足条件);(5)箭线表示流程的方向。4.2.2如何描述算法?求3个整数最大值流程图描述3.编程语言
就是用一种能在计算机中实现的编程语言来实现问题的解决,找到问题的答案。当然你也可能还没有学过相应的编程语言,也没有关系,你只要知道可以用程序语言实现就可以了。4.2.2如何描述算法?用python来实现求三个数A,B,C最大值,此代码不能直接复制,可查看源文件。#定义三个数
#开头的表示注释,帮助理解,但程序不执行A=18B=25C=9#先把A的值给MaxMax=A#开始与B进行比较ifB>Max:
Max=B#开始与C进行比较ifC>Max:
Max=C#输出最大值print(f"三个数A,B,C中的最大值是:{Max}")4.伪代码
是一种介于自然语言和编程语言之间的算法描述方式。使用类似编程语言的语法,但不严格遵守具体编程语言的语法规则。4.2.2如何描述算法?#初始化三个数值设定A为18设定B为25设定C为9#预设最大值为A将Max初始化为A#比较B与当前最大值若B大于Max,则更新Max为B#比较C与当前最大值若C大于Max,则更新Max为C#输出最终的最大值打印"三个数A,B,C中的最大值是:"紧接着显示Max的值用伪代码描述求三个数A,B,C最大值分组练习:把上面5人排序的算法描述出来,每组完成一种即可,然后下节课分享讨论
在算法中,尤其基础算法中,冒泡排序是一个经典的算法,主要用来解决数据的排序问题。我们以数据18,13,25,85,9,45为例,进行升序排列。4.2.3算法实现案例:冒泡算法4.2.3算法实现案例:冒泡算始第二次比较,不需要下较,大的下三次比较,不需要下沉比较,大的下四次比较,需要下沉比较,大的下沉第五次比较,需要下较,大的下一次比较,需要下沉比较,大的下轮结果
6个整数冒泡排序第一轮,5次比较
6个整数冒泡排序第二轮,4次比较4.2.3算法实现案例:冒泡算一次比较,不需要下沉比较,大的下沉第二次比较,不需要下较,大的下沉第三次比较,需要下较,大的下较,大的下沉四次比较,不需要下轮结果6个整数冒泡排序第三轮,3次比较4.2.3算法实现案例:冒泡算始比较,大的下一次比较,不需要下沉比较,大的下二次比较,需要下沉1813258594518132585945三轮结果比较,大的下沉第三次比较,不需要下沉6个整数冒泡排序第四轮,2次比较4.2.3算法实现案例:冒泡算较,大的下沉第一次比较,需要下较,大的下沉第二次比较,不要下四轮结果6个整数冒泡排序第五轮,1次比较4.2.3算法实现案例:冒泡算法原始181325859456个整数冒泡排序第五轮,1次比较4.2.3算法实现案例:冒泡算法原始1813258594518132585945第一次比较,不要下沉比较,大的下果在Python中具体的实现演示,执行代码看源文件,#定义一个包含六个未排序整数的列表numbers=[18,13,25,85,9,45]#实现冒泡排序算法n=len(numbers)
#获取列表的长度foriinrange(n):
#外层循环,控制比较的轮数
forjinrange(0,n-i-1):
#内层循环,控制每轮中相邻元素的比较
ifnumbers[j]>numbers[j+1]:
#如果当前元素大于下一个元素
numbers[j],numbers[j+1]=numbers[j+1],numbers[j]#交换这两个元素#输出排序后的列表print("使用冒泡排序算法对列表进行排序后的结果为:",numbers)4.2.3算法实现案例:冒泡算法为实现前面6个数排序算法,需要一个像抽屉格子一样的数据结构:数组程序=算法+数据结构4.2.4实现算法常用的数据结构a0a1a2a3a4a5组织结构树学校各个场所图4.2.4实现算法常用的数据结构讨论:为什么这么简单的问题,计算机处理起来这么复杂?请举例自己班的学生第一轮:全5个人,比较4次,找出最高个子,排在5个人的最后第二轮:前4个人,比较3次,找出最高个子,排在4个人的最后第三轮:前3个人,比较2次,找出最高个子,排在3个人的最后第四轮:前2个人,比较1次,找出最高个子,排在2个人的最后人脑高度发达,能处理复杂的问题计算机只能通过简单的电路处理简单问题。因此,需要把复杂问题简单化或逻辑化。第一轮:全5个人,比较4次,找出最高个子,排在5个人的最后第二轮:前4个人,比较3次,找出最高个子,排在4个人的最后第三轮:前3个人,比较2次,找出最高个子,排在3个人的最后第四轮:前2个人,比较1次,找出最高个子,排在2个人的最后计算思维
通过上面的学习,你可能会产生算法和程序是否有联系的疑问,实际上他们既有联系,又有区别
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026浙江海港投资运营集团招聘面试题及答案
- 2026四川国有资产投资管理公司招聘面试题及答案
- 2026山东财欣资产运营公司招聘面试题及答案
- 2026年一级注册建筑师之建筑物理与建筑设备考试题库300道附完整答案(名师系列)
- 2025年桂林市职工大学辅导员招聘考试真题汇编附答案
- 2026年高校教师资格证《高校教师职业道德》题库带答案(考试直接用)
- 物流公司仓库经理面试考核要点
- 银行柜员岗面试题及答案详解
- 2026年资料员之资料员基础知识考试题库300道完整参考答案
- 2026年初级经济师之初级经济师人力资源管理考试题库500道附答案(培优a卷)
- 盐城市2025年滨海县事业单位公开招聘人员66人笔试历年参考题库典型考点附带答案详解(3卷合一)
- 2025江苏盐城东台市消防救援综合保障中心招聘16人笔试考试参考题库及答案解析
- 2025年闵行区机关事业单位编外人员招聘(第二轮)历年参考题库带答案解析
- GB 46768-2025有限空间作业安全技术规范
- GJB827B--2020军事设施建设费用定额
- DL∕T 5776-2018 水平定向钻敷设电力管线技术规定
- 情报学-全套课件(上)
- 公司战略规划和落地方法之:五看三定工具解析课件
- 团支部推优表决票(参考样式)
- 梁祝-钢琴双手简谱(高清)
- 苏教版六年级数学毕业模拟试卷“四赛”教师岗位“赛命题”试卷
评论
0/150
提交评论