数据结构03 栈 / 队列 /数组查找算法

本文详细介绍了线性查找的基本实现及其适用场景,然后深入剖析了二分查找法,特别针对其在有序数组中的高效性。通过对比两种查找算法,突出了二分法在大规模数据中的优势。同时,展示了如何在Java中使用这两种方法,并以实例演示了它们在主方法中的应用。
摘要由CSDN通过智能技术生成

数组 查找算法

线性查找

就是用像查找的数一个个对比数组的数,成功返回下标,失败返回-1 ,因为数组下标没有-1

public  static  int flow(int[] a,int ele){
    for (int i = 0; i <a.length ; i++) {
        if (a[i]==ele){
            return i;
        }
    }
    return -1;
}

二分法查找 优化 二分法找不到

必要条件是数组内数字有序,如{1,2,3,4,5,6,7,8,9,10},运用面小

public static int towFlow(int[] a,int ele){
    int start = a[0];
    int end = a[a.length-1];
    int mid = (start + end ) /2 ;  // /号代表取商,舍去余数
    for (int i = 0; i <a.length ; i++) {
        if (ele>a[mid]){
            start=mid+1;
        }
        if (ele<a[mid]){
            end=mid-1;
        }
        if (ele==a[mid]){
            return  mid;
        }
        mid = (start + end ) /2 ;
    }
    return -1;
}

main 方法内容

public static void main(String[] args) {
    int[] a={1,2,3,4,5,6,7,8,9,10};

    System.out.println(flow(a, 9));
    System.out.println(towFlow(a,0));
}

栈的示意图 ,先进后出 ,只能去除顶上的元素

数组存储模拟,完成以下操作压入元素,取出栈顶元素,操作基本和数组一样不做代码演示

队列

队列的示意图, 先进去,先处理,就是先出来


代码和 数组相同 就是 弹出的是第一个元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值