算法设计之蛮力法
来源:互联网 发布:阴阳师6星土豪酒吞数据 编辑:程序博客网 时间:2024/06/06 10:59
1.蛮力法
(也叫穷举法),是一种直接解决问题的方法,常常直接基于问题的描述和所涉及的概念及定义。
2.蛮力法优点:
逻辑清晰,相对于高效的、巧妙的算法,实现和构思简单。
同时蛮力法也是很多高效算法的基础。可以作为其他高效算法的衡量标准。
对于一些重要的问题,它可以产生一些合理的算法。
可以解决一些小规模的问题。它让你花费较少的代价。
虽然巧妙和高效的算法很少来自于蛮力法,但我们不应该忽略它作为一种重要的算法设计策略的地位。第一,和其
他某些策略不同,我们可以应用蛮力法来解决广阔领域的各种问题。第二,对于一些重要的问题来说(比如:排
序、查找、矩阵乘法和字符串匹配),蛮力法可以产生一些合理的算法,它们多少具备上些实用价值,而且并不限
制实例的规模。第三,如果要解决的问题实例不多,而且蛮力法可以用一种能够接受速度对实例求解,那么,设计
一个更高效算法所花费的代价很可能是不值得的。第四,即使效率通常很低,仍然可以用蛮力法解决一些小规模的
问题实例。最后,一个蛮力算法可以为研究或教学目的的服务。
举例: 排序算法(冒泡排序)
A0,…,Aj↔Aj+1,…,An-i-1|An-i≤…≤An-1
算法 BubbleSort (A[0..n-1])
//该算法用冒泡排序对数组A[0..n-1]排序
//输入:一个可排序数组A[0..n-1]
//输出:非降序排列的数组A[0..n-1]
for i←0 to n-2 do
for j←0to n-2-i do
if A[j+1]<A[j]
swap A[j] and A[j+1]
0 0
- 算法设计之蛮力法
- 算法设计之排序算法
- 算法设计之算法概论
- 算法设计之迭代法!
- 算法设计之迭代法
- 算法设计之线性规划
- 算法设计之贪心
- 算法设计之DP
- 算法设计之分治
- 算法设计 之 递推法
- 算法设计之动态规划
- 算法设计之回溯法
- 算法设计之勇士都恶龙
- 算法设计之分治法
- 操作系统算法 之 文件系统设计
- 设计算法之分治法
- 算法设计之一些算法的实现
- 算法设计与分析之棋盘算法
- poj2363
- 动态规划 (三) 背包问题
- hello world
- 黑马程序员——java for循环学习总结
- 花生壳绑定IP解决动态IP问题
- 算法设计之蛮力法
- 算法笔记--八个常见排序算法总结
- 程序员生存定律-六个程序员的故事(3)
- C#调用Web Service简单实例
- java线程
- C++中的虚拟继承
- WPF 体系结构
- priority_queue (仿sgi stl) 纯手打 累死TMD
- 立体图