java数组(折半查找)-java读书笔记
时间:2014-04-23 22:59 来源: 我爱IT技术网 作者:山风
数组(折半查找)
//需求:查找key在数组中第一次出现的位置,如果不存在就返回-1。
class Test
{
public static void main(String[] args)
{
int[] arr={2,4,5,7,19,32,45};
int index=halfSearch_2(arr,32);
System.out.println("index="+index);
}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//通常
public static int getIndex(int[] arr,int key)
{
for(int x=0;x
{
if(arr[x]==key)
return x;
}
return -1;
}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//方法1
public static int halfSearch_1(int[] arr,int key)
{
int min,max,mid;
min=0;
max=arr.length-1;
mid=(max+min)/2;
while(arr[mid]!=key)
{
if(min>max)
return -1;
if(key>arr[mid])
min=mid+1;
else if(key
max=mid-1;
mid=(max+min)/2;
}
return mid;
}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//方法2
public static int halfSearch_2(int[] arr,int key)
{
int min=0,max=arr.length-1,mid;
while(min<=max)
{
mid=(max+min)>>1;
if(key>arr[mid])
min=mid+1;
else if(key
max=mid-1;
else
return mid;
}
return -1;
}
}
本文来源 我爱IT技术网 http://www.52ij.com/jishu/5574.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
