数据结构-查找

Posted mushuise

tags:

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

一、二分查找

必须为有序数组

1.1递归实现

static int recursive(int[] arr,int low,int high,int target){
         if(target < arr[low] || target >arr[high] || low> high){
             return -1;
         }
         int middle = (low + high)/2;
         if(arr[middle] <target){
             return recursive(arr, middle+1, high, target);
         }else if(arr[middle]>target){
             return recursive(arr,0,middle-1, target);
         }
         else{
             return middle;
         }
     }

  1.2 循环实现

public static void main(String[] args) {
        Arrays.sort(array);
        int num = 1;
        int end = array.length-1,begin=0;
        while(array[(begin + end)/2] != num){
            if(num < array[(begin + end)/2]){
                end = (begin + end)/2;
            }
            else{
                begin=(begin + end)/2;
            }
        }
        System.out.println((begin + end)/2);
    }

  

以上是关于数据结构-查找的主要内容,如果未能解决你的问题,请参考以下文章

记录C#常用的代码片段

如何使用导航架构组件查找子片段

如何创建片段以重复变量编号中的代码行

以下代码片段的时间复杂度是多少?

在片段中,如何查找活动布局中定义的视图?

在片段中查找ViewById