java基础案例:在数组中查找指定元素

public class Array_Demo9
{
public static void main(String[] args)
{
int[] arr = new int[]{3,5,62,6,21,344,53};
int index = getIndex(arr,3);
System.out.println("index="+index);

int[] arra = new int[]{2,5,6,8,9,12,14,15,16,19};
int index2 = binarySearch_2(arra,16);
System.out.println("index2="+index2);
}


/*
数组常见功能:查找;
*/
public static int getIndex(int[] arr,int key)
{
for(int x=0;x<arr.length;x++)
{
if(arr[x]==key)
{
return x;
}
}
return -1;
}


/*
二分查找法;
*/
public static int binarySearch(int[] arra,int key)
{
int max,min,mid;
min = 0;
max = arra.length-1;
mid = (max+min)/2;
while(arra[mid]!=key)
{
if(key>arra[mid])
{
min = mid+1;
}
else if (key<arra[mid])
{
max = mid-1;
}
if(max<min)
{
return -1;
}
mid = (max+min)/2;
}
return arra[mid];
}


//二分查找法的第二种表现形式;

public static int binarySearch_2(int[] arra,int key)
{
int max,min,mid;
min = 0;
max = arra.length-1;
while(min<max)
{
mid = (max+min)>>1;
if(key>arra[mid])
{
min = mid + 1; 
}
else if(key<arra[mid])
{
max = mid - 1;
}
else
{
return mid;
}
}
return -1;
}
}

猜你喜欢

转载自blog.csdn.net/z1888202/article/details/79371511