★折半查找:
public static void main(String[] args) //这是毕老师视频讲解的例子 给你分析下
{
int[] arr={3,5,7,9,12,21};
int z=zheban(arr,7);
System.out.println(z);
}
public static int zheban(int[] arr,int key)
{
int max,min,mid; //三个变量,中等 低等 高等
min=0; //数组都是0角标 比较
max=arr.length-1; //相邻比较,少一
mid=(min+max)/2; //折半。 就是取中间 如果偏大 就往右 小就左
while (arr[mid]!=key) //。。看毕老师视频 多看变
{
if (key>arr[mid])
{
min =mid+1;
}
else if (key<arr[mid])
{
max = mid-1;
}
mid =(max+min)/2;
}
return mid;
} |