算法学习之蛮力法

本文介绍了蛮力法在解决算法问题中的应用,包括选择排序和冒泡排序的详细过程,对冒泡排序的改进,顺序查找的两种实现,以及在字符串匹配、最近对问题和凸包问题中的解决方案。通过实例展示了蛮力法的基本思想和计算原理。
摘要由CSDN通过智能技术生成

蛮力法


蛮力法一种简单直接地解决问题的方法,常常直接基于问题的描述和所涉及的概念定义。
虽然巧妙和高效的算法很少来自于蛮力法,但我们不应该忽略它作为一种重要的算法设计策略的地位。第一,和其他某些策略不同,我们可以应用蛮力法来解决广阔领域的各种问题。第二,对于一些重要的问题来说(比如:排序、查找、矩阵乘法和字符串匹配),蛮力法可以产生一些合理的算法,它们多少具备上些实用价值,而且并不限制实例的规模。第三,如果要解决的问题实例不多,而且蛮力法可以用一种能够接受速度对实例求解,那么,设计一个更高效算法所花费的代价很可能是不值得的。第四,即使效率通常很低,仍然可以用蛮力法解决一些小规模的问题实例。

选择排序和冒泡排序

选择排序

在这里插入图片描述

算法  SelectionSort(A[0..n-1])
//该算法用选择排序对给定的数组排序
//输入:一个可排序数组A[0..n-1]
//输出:非降序排序的数组A[0..n-1]
for  i←0 to n-2 do
       min ←i
       for j ←i+1 to n-1 do
            if A[j]<A [min] min ←j
           swap A[i] and A[min]

| 89 45 68 90 29 34 17
17 | 45 68 90 29 34 89
17 29 | 68 90 45 34 89
17 29 34 | 90 45 68 89
17 29 34 45 | 90 68 89
17 29 34 45 68 | 90 89
17 29 34 45 68 89 | 90

选择排序对于序列89,45,68,90,29,34,17,所做的操作
在这里插入图片描述

冒泡排序

算法  BubbleSort(A[0.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值