Java数据结构与算法——顺序查找

常见的查找算法有顺序查找、二分查找、插值查找、黄金查找。顺序查找是最基本的查找方式,即按顺序比较,直到找到目标元素。二分法查找是基于有序的基础上进行的,通过比较序列的中间值来折半缩小查找的区间,从而实现快速的查找,虽然二分法查找已经到了一个较快的水平但是当我们要的目标元素是位于序列的两端时,仍然还是会产生一些额外的折半开销,因为二分查找在一定的局部空间内是从中间开始的,所以位于两端的元素的查找就会有一个较多的折半次数,才可以定位到目标元素。插值查找通过一个均值算法解决了二分法查找的这个缺点,但是插值查找是在序列元素有分布较为均匀的时候才有一个更好的表现,如果序列中的元素分布不均匀那么插值查找的算法未必优于二分查找。总的来说二分查找与插值查找的实现思路是相同的。黄金查找又称为黄金分割查找、斐波那契查找,他利用的原理是黄金分割比(0.618)。

public class SeqSearch {
    
    public static void main(String[] args) {
        int arr[] ={1,9,11,-1,34,89};
        int index = seqSearch(arr,144 );
        if(index==-1){
            System.out.println("没有找到");
        }else{
            System.out.println("下表为:"+index);
        }
    }

    public static int seqSearch(int[] arr,int value){
        //如果要是要找到序列中所有的目标元素,可以用一个集合对找到的结果进行一个存储
        //最后返回这个结果集合
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]==value){
                return i;
            }
        }
        return -1;
    }
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值