二分法在排好序的数组中查找一个数

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("没有找到这个数");
        }

    }

}

猜你喜欢

转载自blog.csdn.net/qq_35316228/article/details/80888766
今日推荐