- 0
- 0
- 约3.19千字
- 约 14页
- 2023-12-06 发布于陕西
- 举报
HeilongjiangInstituteofTechnology
大学计算机
——计算思维视角
章名:算法与程序设计
节名:典型算法举例
主讲人:
目录
Contents
1穷举法
2递归
3排序
编程中的思维问题
•编程能够训练思维,编程体现了一种抽象交互
关系,自动化执行的思维模式;
•用计算机求解一个实际问题,首先要从这个实
际问题中抽象出一个数学模型(如数学公式),
然后设计一个求解该数学模型的算法。
•哥尼斯堡七桥问题:将实际问题抽象成图。
典型算法举例
为了提高计算机的工作效率,人们通过长时
间的研究开发,总结了一些典型算法,在应用中非
常普遍。
穷举递归排序
•水仙花数•汉诺塔•揑入排序
•冒泡排序
•破译密码•求阶乘
•选择排序
•……
•百元买百鸡
穷举法
穷举法(又称“枚举法”)基本思想是:
按问题本身的性质,通过多重循环,一一
列举各种可能的情况,并判断哪一种可能是符
合要求的解(丌能遗漏,也丌能重复),并在
逐一列举的过程中,检验每个可能的解是否是
问题的真正解,若是,我们采用这个解,否则
抛弃它。
穷举法
举例-百钱买百鸡
例:鸡翁一,值钱五、鸡母一,值钱三、
鸡雏三,值钱一,百钱买百鸡,问鸡翁、
鸡母、鸡雏各几个?
•分析:设鸡翁、鸡母、鸡雏的数量分别为
x、y、z,则可得如下模型:
•5*x+3*y+z/3.0=100
•x+y+z=100
穷举法
举例-百元买百鸡
百鸡问题算法描述:
公鸡的数目从0遍历到20
母鸡的数目从0遍历到33
小鸡的数目从0遍历到99
如果5*x+3*y+z/3.0=100
并且x+y+z=100
则输出公鸡的数目、母鸡的数目、小鸡
的数目。
递归
用自身的结构来描述自身,称为递归。是利用问题本身所具有的
某种递推关系求解问题的一种方法。
思考:什么时候需要采用递归方法?
问题分解
……
递归举例——阶乘问题
递归举例——阶乘问题
递归过程不递归工作栈
•递归过程在实现时,需要自己调用自己。
•层层向下递归,返回次序正好相反。
排序
排序含义:按数据队列的某个关键字,重新
按一定规律排列其队列(升序/降序)。
实现排序的方法:
•选择法
•冒泡法(气泡上浮法)
•插入法
•……
排序举例-冒泡排序
算法名字由来:越大的元素会经过交换慢
慢“浮”到数列的顶端。用冒泡法对6个数排序(从小到大)
初始状态:数据无序
在一组数中,自前而后对相邻的两个
数依次进行比较和调整,让需要的数9
您可能关注的文档
最近下载
- 来院人员工资核定表.doc VIP
- 2025年换电模式下的电动汽车充电设施布局与运营优化研究报告.docx VIP
- 2025年充电与换电:新能源汽车换电模式与充电设施协同发展研究报告.docx VIP
- 2025年新疆维吾尔自治区高考政治真题含解析.docx VIP
- 混合能源微电网经济调度方法研究.docx VIP
- 中国人民大学助教岗位申请表.doc
- 重卡汽车换电基础设施项目规划设计方案.pptx VIP
- 微网经济调度问题的混合整数规划方法.pdf VIP
- 2025年换电模式下的电动汽车充电设施运营与管理研究报告.docx VIP
- 2025年新能源汽车换电模式供应链协同效率分析报告.docx VIP
原创力文档

文档评论(0)