您的位置:首页 > 其它

二分法查找数据

2014-09-15 20:34 260 查看
import java.util.*;
public class Array {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int start = 0, end, middle;
int a[] = { 12, 45, 67, 89, 123, -45, 67 };
int N = a.length;
for (int i = 0; i < N; i++) { // 选择法排序数组
for (int j = 0; j < i + 1; j++) {
if (a[j] < a[i]) {
int t = a[j];
a[j] = a[i];
a[i] = t;
}
}
}
Scanner scanner = new Scanner(System.in);
System.out.println("输入整数,程序判断该整数是否在数组中:");
int number = scanner.nextInt();
int count = 0;
end = N;
middle = (start + end) / 2;
while (number != a[middle]) {
if (number > a[middle])
start = middle-1;
else if (number < a[middle])
end = middle+1;
middle = (start + end) / 2;
count++;
if (count > N / 2)
break;
}
if (count > N / 2)
System.out.printf("%d不在数组中.\n", number);
else
System.out.printf("%在数组中.\n", number);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: