蛮力法在查找算法中的应用
对于查找算法来说,最简单的一个思路就是逐个匹配,直到找到目标元素
顺序查找:
public class Main {public static void main(String[] args) {int[] a = {89, 45, 68, 90, 29, 34, 17, 0};int k = 45;int i = 0;a[a.length-1] = k;while (a[i] != k) {i++;}if (i < a.length-1) {System.out.println(i);} else {System.out.println("no find");}}
}
上面的算法不同于大家常见的算法,这是在顺序查找时常用的一个小技巧:将查找建添加到列表末尾(也称
限位器
),那么查找必定会成功,这样就不比在每次循环都检查是否达到的末尾,只需再循环外面做一次即可。
发现问题:如果未定的数组是有序的,即使后面的元素都不可能等于查找建,但是算法不会停止
优化思路:当我们当查到一个比查找键还大的元素,仍未找到,那么就可以终止循环了。