返回列表 發帖
本帖最後由 蔡季樺 於 2017-8-20 15:14 編輯
  1. import java.util.Scanner;
  2. public class JPA05 {
  3.     public static Scanner keyboard = new Scanner(System.in);
  4.    
  5.     public static void main(String[] argv) {
  6.         search();
  7.         search();
  8.     }
  9.    
  10.     public static void search() {
  11.         int[] data = {5, 9, 13, 15, 17, 19, 25, 30, 45};

  12.         System.out.print("請輸入要找尋的資料:");

  13.         int target = keyboard.nextInt();
  14.    
  15.         int high = data.length-1;
  16.         int low = 0;
  17.         int mid = 0;
  18.         int n = 0;
  19.         
  20.         
  21.       
  22.        while(low <=high)
  23.        {
  24.                                mid = (high+low)/2;     
  25.                                n++;
  26.                                System.out.println("尋找區間:"+low+"("+data[low]+").."+high+"("+data[high]+")中間:"+mid+"("+data[mid]+")");

  27.                 if(target>data[mid])
  28.                 {
  29.                         low = mid+1;
  30.                 }
  31.                 else if (target < data[mid])
  32.                 {
  33.                    high = mid-1;
  34.                 }
  35.                 else{
  36.                         break;
  37.                 }
  38.                               
  39.        }
  40.       
  41.        System.out.println("經過"+n+"次尋找");
  42.        if(target == data[mid])
  43.        {
  44.                System.out.println("您要找的資料在陣列中的第"+mid+"個位置");
  45.        }
  46.        else{
  47.                System.out.println(target+"不在陣列當中");
  48.        }
  49.         
  50.    
  51.     }
  52. }
複製代碼

TOP

返回列表