有序查找——折半查找

Posted 行动派

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有序查找——折半查找相关的知识,希望对你有一定的参考价值。

  

 1 public static String binarySearch(int[] a, int num) {
 2         if (a.length == 0)
 3             return "Eroor";
 4         int start = 0;
 5         int end = a.length - 1;
 6         int mid = (start + end) / 2;
 7         while (start <= end) {
 8             if (num == a[mid]) {
 9                 return "所查数在数组的下标为" + mid;
10             } else if (num > a[mid]) {
11                 start = mid + 1;
12             } else if (num < a[mid]) {
13                 end = mid - 1;
14             }
15             mid = (start + end) / 2;
16         }
17         return "数组中无该数值";
18     }

递归实现:

public static String binarySearch(int[] arr, int num,int start,int end) {
        if (arr.length == 0 || end<start)
            return "Eroor";
    
        int mid = (start + end) / 2;
        if (num==arr[mid]) {
            return  "所查数在数组的下标为"+mid;
        }else if(num<arr[mid]) {
            return binarySearch(arr, num,start,mid-1);
        }else {
            return binarySearch(arr, num, mid+1, end);
        }
}

 

以上是关于有序查找——折半查找的主要内容,如果未能解决你的问题,请参考以下文章

数据结构查找---有序表查找(三种查找方式:折半,插值,斐波拉契查找)

有序查找——折半查找

python实现二分查找(折半查找)算法

用折半查找法找出整型数组中指定元素所在的位置,并输出(折半查找法只能用于有序数列)。

C语言折半查找法

7.2 有序表查找