二分查找算法
要點:定義3個變量來標識元素的查找范圍,通過讓目標值和每次查找范圍的中間值來做比較,不斷縮小查找范圍,從而避免全部遍歷來查找目標元素.
示例代碼:
/*
二分查找算法
*/
class Demo9
{
public static void main(String[] args)
{
int[] arr = {1,23,12,-9,15,31};
int a = 30;
int index = halfSearch(arr,a);
if (index != -1)
{
System.out.println(a+"的索引是:"+index);
}
else
{
System.out.println("不好意思,沒找到!");
}
}
public static int halfSearch(int[] arr, int target)
{
int min = 0;
int mid = arr.length/2;
int max = arr.length;
while(true)
{
if (target > arr[mid])
{
min = mid + 1;
}
else if (target < arr[mid])
{
max = mid - 1;
}
else
{
return mid;
}
if(max < min)
{
return -1;
}
mid = (min+max)/2;
}
}
}
示例截圖:
