黑马程序员_Java中数组元素的折半查找

时间:2022-07-24 00:25:30

-----------android培训java培训、java学习型技术博客、期待与您交流! ------------



注意:使用折半查找的必须是有序数组。

public static int halfSearch(int[] arr,int key)

{

int min,max,mid;

min=0;

max=arr.length-1;

mid=(max+min)/2;

while(arr[mid]!=key)

{

if(key>arr[mid])

min=mid+1;

else if(key<arr[mid])

max=mid-1;

if(min>max)

return -1;

mid=(max+min)/2;

}

return mid;

}


折半查找的第二种方式:

public staatic int halfSearch_2(int[] arr,int key)

{

int min=0,max=arr.length-1,mid;

while(min<=max)

{

mid=(min+max)/2;

if(key>arr[mid])

min=mid+1;

else if(key<arr[mid])

max=mid-1;

else

return mid;

}

return -1;

}


补充:如果有一个有序数组,要求插入一个数后,使其仍然有序,怎么做?

只须将程序中的“return -1;”,改为:“return min;”,其中min就是这个数在数组中应插入的位置。



-----------android培训java培训、java学习型技术博客、期待与您交流! ------------