public class ArraySearchTest
{
public static int search(int[] a , int value)
{
for(int i = 0; i < a.length - 1; i++)
{
if(a[i] == value )
{
return i;
}
}
return -1;
}
public static int binarySearch(int[] array , int value)
{
int low = 0;
int high = array.length -1;
int middle;
while(low <= high)
{
middle = (low + high)/2;
for(int i = 0; i < array.length; i++)
{
System.out.print(array[i]);
if( middle == i)
{
System.out.print("#");
}
System.out.print(" ");
}
System.out.println();
if(array[middle] == value)
{
return middle;
}
if(value < array[middle])
{
high = middle - 1;
}
if(value > array[middle])
{
low = middle + 1;
}
}
return -1;
}
public static void main(String[] args)
{
int[] a = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};
int value = 11;
int index = search(a, value);
System.out.println(index);
System.out.println("-----------------");
int[] b = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};
int index2 = binarySearch(b , 5);
System.out.println(index2);
}
}
Java 查找方法(普通查找,二分查找)
最新推荐文章于 2023-09-28 23:47:40 发布