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