1. 程式人生 > >二分法在排好序的陣列中查詢一個數

二分法在排好序的陣列中查詢一個數

package com.sxt.add;

import java.util.Scanner;

public class Rfenfa {
  static    Scanner input=new  Scanner(System.in);
    public static void main(String[] args) {
        int[] a = { 12, 34, 65, 75, 90,100 };
        System.out.println("-------二分法------");
        ranfenfa(a);
        
    }

    public static void ranfenfa(int[] a) {
        System.out.println("輸入你要查詢的數");
        int data=input.nextInt();
        int left=0;
        int right=a.length-1;
        int  m=(left+right)/2;
        
        while(left<right ) {
            if(data==a[m]) {break;}
            
            if(data<a[m]) {
                right=m-1;
                m=(right+left)/2;
            }else {
                left=m+1;
                m=(left+right)/2;
                
            }
        }
        if(a[m]==data) {
            System.out.println("這個數在第"+(m+1)+"的位置上");
        }
        else
        {
            System.out.println("沒有找到這個數");
        }

    }

}