package java常用算法;
import java.util.*;
public class 二分查找法 {
public static void main(String[] args) {
int arr[] = {1,4,5,7,9};
System.out.println("请输入要查找的数:");
int tmp = new Scanner(System.in).nextInt();
System.out.print("查找到的位置在:"+binarySearch2(arr,tmp));
}
/**
* 二分法(循环方式)*/
public static int binarySearch(int a[],int number){
int head = 0;
int end = a.length -1;
int mid = (head+end)/2;
while(head <= end){
if (number == a[mid]){
return mid;
}
else if (number > a[mid]){
head++;
mid = (head+end)/2;
}
else if (number < a[mid]){
end--;
mid = (head+end)/2;
}
}
return -1;
}
/**
* 二分法(递归方式)*/
public static int binarySearch2(int a[],int number){
return recusion(a,0,a.length-1,number);
}
public static int recusion(int a[],int head,int end,int number){
int mid = (head + end)/2;
if (head > end)
return -1;
if (a[mid] > number){
return recusion(a,head+1,end,number);
}
if (a[mid] < number){
return recusion(a,head,end-1,number);
}
else
return mid;
}
}
二分法查找
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1、搜索都是建立在排好序的序列之上再搜索。(1)二分法搜索拿中间的数和要搜索的数比较。(2)排序的顺序要求是升序。...
- 假设有数组 totalArr ,每项的值都是递增的,后一个数组比前一个数组的值都大,现在希望在 totalArr ...
- 冒泡排序: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾...