实验目的:
1、复习java编程;
2、掌握二分搜索技术的基本原理;
3、掌握使用java程序进行二分搜索的方法。
实验步骤:
1、由用户输入5个以上的整数;
2、利用二分搜索算法完成对数组的搜索。
package erfenfa; import java.util.Scanner; public class erfen { static int key; public static void main(String[] args) { //数组的输入 System.out.println("请输入数组中的8个元素:"); int[] a=new int [8]; Scanner scan=new Scanner(System.in); for(int i=0;i<8;i++) { a[i]=scan.nextInt(); } //要查找的元素输入 System.out.println("请输入要查找的元素:"); Scanner shu = new Scanner(System.in); key= shu.nextInt(); /*数组的输出提示*/ System.out.print("你输入的数组是: "); for(int b=0;b<8;b++) { System.out.print("["+a[b]+"]"); } /*查找元素输出提示*/ System.out.print(" 你要查找的元素是: "); System.out.print(key); /*最终结果的输出*/ System.out.println(" 目标数的数组下标是:"+binSearch(a, 0, a.length - 1)); } /*二分查找算法开始*/ public static int binSearch(int a[], int left, int right) { int mid = (right - left) / 2 + left; if (a[mid] == key) { return mid; } if (left >= right) { return -1; //在数组中没找到特定元素 } else if (key > a[mid]) { return binSearch(a, mid + 1, right); //如果查找的数在数组右半段 } else if (key < a[mid]) { return binSearch(a, left, mid - 1); //如果查找的数在数组左半段 } return -1; //在数组中没找到特定元素 } /*查找算法结束*/ }
结果如下: