算法设计与分析课程记录week4
2021/11/23 22:14:03
本文主要是介绍算法设计与分析课程记录week4,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
算法设计与分析课程记录week4
PS:此文章仅作为个人课程期间的学习记录
蛮力法
1. 概述
蛮力法是一种简单直接地解决问题的方法,通常直接基于问题的描述和所涉及的概念定义,找出所有可能的解。然后选择其中的一种或多种解,若该解不可行则试探下一种可能的解。
使用蛮力法通常有如下几种情况:
- 搜索所有的解空间:问题的解存在于规模不大的解空间中。
- 搜索所有的路径:这类问题中不同的路径对应不同的解。
- 直接计算:按照基于问题的描述和所涉及的概念定义,直接进行计算。往往是一些简单的题,不需要算法技巧的。
- 模拟和仿真:按照求解问题的要求直接模拟或仿真即可。
2. 基本应用
2.1 直接采用蛮力法的一般格式
在直接采用蛮力法设计算法中,主要是使用循环语句和选择语句,循环语句用于穷举所有可能的情况,而选择语句判定当前的条件是否为所求的解。
【例4.1】编写一个程序,输出2~1000之间的所有完全数。所谓完全数,是指这样的数,该数的各因子(除该数本身外)之和正好等于该数本身,例如:
6=1+2+3
28=1+2+4+7+14
对应的程序如下:
void main() { int m,i,s; for (m=2;m<=1000;m++) { s=0; for (i=1;i<=m/2;i++) if (m%i==0) s+=i; //i是m的一个因子 if (m==s) printf("%d ",m); } printf("\n"); }
3. 递归在蛮力法中的应用
4. 图的深度优先和广度优先遍历
这篇关于算法设计与分析课程记录week4的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11cursor试用出现:Too many free trial accounts used on this machine 的解决方法
- 2025-01-11百万架构师第十四课:源码分析:Spring 源码分析:深入分析IOC那些鲜为人知的细节|JavaGuide
- 2025-01-11不得不了解的高效AI办公工具API
- 2025-01-102025 蛇年,J 人直播带货内容审核团队必备的办公软件有哪 6 款?
- 2025-01-10高效运营背后的支柱:文档管理优化指南
- 2025-01-10年末压力山大?试试优化你的文档管理
- 2025-01-10跨部门协作中的进度追踪重要性解析
- 2025-01-10总结 JavaScript 中的变体函数调用方式
- 2025-01-10HR团队如何通过数据驱动提升管理效率?6个策略
- 2025-01-10WBS实战指南:如何一步步构建高效项目管理框架?