- import java.util.Scanner;
- public class JPA05 {
- public static Scanner keyboard = new Scanner(System.in);
-
- public static void main(String[] argv) {
- search();
- search();
- }
-
- public static void search() {
- int[] data = {5, 9, 13, 15, 17, 19, 25, 30, 45}; // 已排序資料
- System.out.print("請輸入要找尋的資料:");
- int target = keyboard.nextInt();
- int high = data.length-1 ;
- int low = 0;
- int mid = 0;
- int n = 0;
-
- while(low<=high)
- {
- System.out.printf("尋找區間:%d(%d)..%d(%d),中間:%d(%d)",low,data[low],high,data[high],mid,data[mid]);
- n++;
- mid=(high+low)/2;
-
- if(target>data[mid]){
-
- low = mid+1;
-
- }
- else if(target<data[mid]){
-
- high = mid-1;
-
- }
- else{
-
- break;
-
- }
-
-
- }
-
- System.out.println("經過"+n+"次的搜尋");
- if(target == data[mid]){
-
- System.out.println("您要找的資料在陣列中的第"+mid+"個位置");
- }
- else{
-
- System.out.println(target+"不在陣列中");
-
- }
- }
- }
複製代碼 |