对于一维数组,通常会用到以下查找方法,来查找数组中是否存在某个元素。
(一)逐个元素对比,找出要查找的对象
public static int search(int[] array, int value) { for(int i = 0; i< array.length; i++) { if(value == array[i]) { return i; } } return -1; } public static void main(Srting[] args) { int[] a = new int[]{1, 5, 3, 7 ,2 ,10,11,4}; int value = 9; int index = search(a, value); System.out.println(index); }
上述代码,查找数组a中值为9的元素的位置,由于a中没有9,所以返回-1
(二)使用二分法查找对象
在使用二分法查找时,必须先为数组排序。
折半查找法也称为二分查找法:它的基本思想是,将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2]则找到x,算法终止。如 果x<a[n/2],则我们只要在数组a的左半部继续搜索x(这里假设数组元素呈升序排列)。如果x>a[n/2],则我们只要在数组a的右 半部继续搜索x。
二分查找的方法可以这样写:
时间: 2024-11-08 11:15:43