精华内容
下载资源
问答
  • java二分查找

    2013-03-14 16:10:51
    java二分查找
  • Java二分查找

    2020-12-14 11:35:36
    Java二分查找进行简单解释 一、二分查找是什么? 二分查找,又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置 的值比待查关键字大,则在前半部分循环这个查找的过程,如果...


    前言

    对Java二分查找进行简单解释


    一、二分查找是什么?

    二分查找,又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置
    的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,
    则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。

    二、示例

    1.代码演示

    代码如下(示例):

    public class App {
      public static void main(String[] args) {
        int[] arr = { 1, 2, 5, 6, 7, 8, 41, 52, 63 };
        int key = 1;
        int position = commonBinarySearch(arr, key);
        if (position == -1)
          System.out.println("没有该数");
        System.out.println("该数的位置是:" + position);
      }
    
      // 二分查找,while实现
      public static int commonBinarySearch(int[] arr, int key) {
        int low = 0;
        int high = arr.length - 1;
        int middle = 0;
    
        while (low <= high) {
          middle = (low + high) / 2;
          if (arr[middle] > key) {
            high = middle - 1;
            // 比关键字大,则关键字在左区域
          } else if (arr[middle] < key) {
            low = middle + 1;
            // 比关键字小,则关键字在右区域
          } else {
            return middle;
          }
        }
        return -1;
        // 没有找到,返回-1
      }
    }
    

    2.结果演示

    结果如下

    在这里插入图片描述


    总结

    二分查找可以快速查找所需要查找的元素,但前提条件是原数据是有序的,不能无序

    展开全文
  • java 二分查找

    2020-04-24 17:15:19
    Java二分查找 原理就不介绍了,大家都懂。说一下二分查找的前提 数组中的元素必须已经拍好顺序 自己写的代码: public static int binarySearch(double[] nubmers, int number) { int low = 0, hight = nubmers....

    Java二分查找

    原理就不介绍了,大家都懂。说一下二分查找的前提

    • 数组中的元素必须已经拍好顺序
      自己写的代码:
    public static int binarySearch(double[] nubmers, int number) {
        int low = 0, hight = nubmers.length - 1, mid;
    
        while (hight >= low) {
            mid = (hight + low) / 2;
            if (nubmers[mid] == number)
                return 1;
            else if (number < nubmers[mid])
                hight = (low + hight) / 2 - 1;
            else if (number > nubmers[mid])
                low = (low + hight) / 2 + 1;
        }
        return 0;
    }

    教材上的参考答案:

    public static int binarySearch(int[] list, int key){
        int low = 0,hight = list.length - 1;
        while (hight >= low){
            int mid = (low + hight) / 2;
            if (key < list[mid])
                hight = mid - 1;
            else if (key == list[mid])
                return mid;
            else
                low = mid + 1;
        }
        return -1;
    }
    展开全文
  • Java 二分查找

    2021-01-13 08:44:25
    二分查找:在一个有序数组中查找目标元素。以升序数组为例,先取中间元素,比较目标元素和中间元素的大小,若小了则在左边找,大了则在右边找。 import java.util.Scanner; public class T0110 { public static ...

    二分查找:在一个有序数组中查找目标元素。以升序数组为例,先取中间元素,比较目标元素和中间元素的大小,若小了则在左边找,大了则在右边找。

    import java.util.Scanner;
    public class T0110 {
        public static void main(String[] args){
            Scanner scanner=new Scanner(System.in);
            int[] a=new int[100];
            int t=scanner.nextInt();
            for(int i=0;i<100;i++){  //创建一个有序数组
                a[i]=i;
            }
            BinSearch(t,a);
        }
       
        public static void BinSearch(int target,int[] arr) {
            int count=0;
            int left=arr[0];
            int right=arr[arr.length-1];
            int mild=0;
            while(left<=right){
                mild=(left+right)/2;
                if(target<arr[mild]){
                    right=mild-1;
                    count++;
                }
                else if(target>arr[mild]){
                    left=mild+1;
                    count++;
                }
                else if(target==arr[mild]){
                    System.out.println("通过"+count+"次找到"+target);
                    break;
                }
            }
        }
    }
    
    展开全文
  • JAVA 二分查找

    2020-09-02 14:25:58
    1. 二分查找原理图 2. 分查找代码实现 public class BinarySearch { public static void main(String[] args) { // TODO Auto-generated method stub int[] arr = {11,22,33,44,44,55,55,66}; int ...

    1. 二分查找原理图

    2. 分查找代码实现

    public class BinarySearch {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		int[] arr = {11,22,33,44,44,55,55,66};
    		
    		int index = binarySearch(arr,55);
    		
    		System.out.println("index : " + index);
    	}
    
    	private static int binarySearch(int[] arr, int i) {
    
    		int min = 0;
    		int max = arr.length - 1;
    		int mid = (min + max)/2;
    		int index = -1;
    
    		while(min <= max) {
    			if(i == arr[mid]) {
    				index = mid;
    				break;
    			} else if(i > arr[mid]) {
    				min = mid + 1;
    			} else if (i < arr[mid]) {
    				max = mid - 1;
    			}
    			mid = (min + max)/2;
    		}
    
    		return index;
    	}
    
    }
    

    二分查找的前提是数组必须有序

     

     

     

     

     

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,923
精华内容 2,769
关键字:

java二分查找

java 订阅