本帖最後由 蔡季樺 於 2017-8-20 15:14 編輯
- 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)
- {
- mid = (high+low)/2;
- n++;
- System.out.println("尋找區間:"+low+"("+data[low]+").."+high+"("+data[high]+")中間:"+mid+"("+data[mid]+")");
- 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+"不在陣列當中");
- }
-
-
- }
- }
複製代碼 |