一、问题描述
一维整型有序(正序)数组的二分查找法
二、源码
package lx;
import java.util.Scanner;
/**
* @author
*
*/
public class Eff {
static void binSearch(int a[], int x) {
int start = 0;
int end = a.length - 1;
for (int i = start; i < end; i++) {
int mid = (start + end) / 2;
if (a[mid] == x) {
System.out.println("查找的数字在数组中,下标是;"+mid);
break;
} else if (a[mid] < x) {
start=mid+1;
} else {
end = mid - 1;
}
}
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner sc = new Scanner(System.in);
int[] a = new int[10];
System.out.println("输入一组10个整数的正序数组;");
for (int j = 0; j < a.length; j++) {
a[j] = sc.nextInt();
}
System.out.println("输入你想查找的整数");
int k = sc.nextInt();
binSearch(a, k);
}
}// 一维有序数组查找(二分查找发/折半查找法)