美文网首页算法Android基础
常见查找算法(java实现)

常见查找算法(java实现)

作者: 背对背拥抱 | 来源:发表于2017-05-04 10:37 被阅读61次

1. 顺序查找

分析:从表中的第一个或者是最后一个记录开始,逐个的将表中记录的关键字和给定值进行比较。若某个记录的关键字和给定值相等,则查找成功;若表中所有记录的关键字和给定值都不相等,则查找失败。

java代码实现如下:

package 顺序查找;

public class OrderSearch {
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] Arr={1,23,4,56,7,89,10,123,88,6};
        System.out.println(OrderSearch(Arr,4));
        
    }
    
    public static int OrderSearch(int[] Arr,int key){
        for(int i=0;i<Arr.length;i++){
            //若查到有,则返回所对应的索引
            if(key==Arr[i]){
                return i;
            }
        }
        //没查着,返回-1
        return -1;
    }

}

2. 二分查找

分析:折半查找的前提条件是在一个有序的序列中。首先确定待查记录所在的区间,然后逐步的缩小范围区间直到找到或者找不到该记录为止。

java代码实现如下:
递归

package 二分查找;

public class BinarySearch {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] Arr={1,2,3,4,5,6,7,8,9};
        System.out.println(binarySearch(Arr,10,0,Arr.length-1));
    }
    //递归
    public static int binarySearch(int[] Arr,int key,int low,int high){

        
        while(low<=high){
            int mid=(low+high)/2;
            if(key==Arr[mid]){
                return mid;
            }
            else if(key<Arr[mid]){
                return binarySearch(Arr,key,low,mid-1);
            }
            else{
                return binarySearch(Arr,key,mid+1,high);
            }
        }
        return -1;
    }

}

非递归

package 二分查找;

public class BinarySearch {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] Arr={1,2,3,4,5,6,7,8,9};
        System.out.println(binarySearch(Arr,11));
    }
    
    public static int binarySearch(int[] Arr,int key){
        int low=0;
        int high=Arr.length-1;
        
        while(low<=high){
            int mid=(low+high)/2;
            if(key==Arr[mid]){
                return mid;
            }
            else if(key<Arr[mid]){
                high=mid-1; 
            }
            else{
                low=mid+1;
            }
        }
        return -1;
    }

}

相关文章

  • 常见查找算法(java实现)

    1. 顺序查找 分析:从表中的第一个或者是最后一个记录开始,逐个的将表中记录的关键字和给定值进行比较。若某个记录的...

  • Java实现常用的三种加密算法详解

    Java实现常用的三种加密算法详解 信息摘要算法、对称加密算法以及非对称加密算法。本文将利用Java实现这几种常见...

  • 编程算法之排序和查找算法

    查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。 一. 排序 常见...

  • 二分查找

    定义 过程 要求 算法复杂度 Java代码实现 定义   二分查找也称折半查找(Binary Search),它是...

  • 算法-数据结构

    时间复杂度 O(log n) 意味着什么? 写给小白的时间复杂度指南查找算法的 Java 实现 查找算法的 Jav...

  • 常见算法 (java实现)

    1.冒泡算法 :大数像气泡一样往上冒。 2.快速排序:找到中间值,分成左右两组,左边的数值均小于右边的数值。然后递...

  • 查找算法的Java实现

    今天来整理一下查找。 什么是查找? 其实我真的不想解释,嘻嘻,好吧。 来个官方一点的解释吧: 查找(searchi...

  • 数据结构&算法(一)

    一、Java实现快速排序算法 二、Java实现折半插入排序算法 三、Java实现冒泡排序算法

  • 音视频开发之旅(27) 算法序列 - 二叉查找树

    目录 常见的查找数据结构和算法介绍 二叉查找树 资料 收获 一、常见的查找数据结构和算法介绍 1.1 链表(顺序查...

  • LeetCode(9. 回文数)

    算法描述 : 算法实现 : Java实现 :

网友评论

    本文标题:常见查找算法(java实现)

    本文链接:https://www.haomeiwen.com/subject/tiyrtxtx.html