判断用户输入的一个整数是否是在已知的数组中。程序如下:
import java.util.*; public class exercise2 { public static void main(String args[]) { 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 = i+1;j<N;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; else if(number<a[middle]) end = middle; middle = (start+end)/2; count++; if(count>N/2) break; } if(count>N/2) System.out.printf("%d不在数组中.\n",number); else System.out.printf("%d在数组中.\n",number); } }