java实现二分查找算法

这篇具有很好参考价值的文章主要介绍了java实现二分查找算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

递归实现:

public static int binarySearchRecursive(int[] arr, int target) {
    return binarySearchRecursive(arr, target, 0, arr.length - 1);
}
 
private static int binarySearchRecursive(int[] arr, int target, int low, int high) {
    if (low > high) {
        return -1; // 没有找到目标元素
    }
    
    int mid = (low + high) / 2;
    if (arr[mid] == target) {
        return mid; // 找到目标元素,返回索引
    } else if (target < arr[mid]) {
        return binarySearchRecursive(arr, target, low, mid - 1); // 在左半部分继续查找
    } else {
        return binarySearchRecursive(arr, target, mid + 1, high); // 在右半部分继续查找
    }
}

迭代实现:

public static int binarySearchIterative(int[] arr, int target) {
    int low = 0;
    int high = arr.length - 1;
    
    while (low <= high) {
        int mid = (low + high) / 2;
        
        if (arr[mid] == target) {
            return mid; // 找到目标元素,返回索引
        } else if (target < arr[mid]) {
            high = mid - 1; // 在左半部分查找
        } else {
            low = mid + 1; // 在右半部分查找
        }
    }
    
    return -1; // 没有找到目标元素
}文章来源地址https://www.toymoban.com/news/detail-845401.html

到了这里,关于java实现二分查找算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 二分查找(C语言实现)

    二分查找的前提: 一个整形有序数组中 查找具体某个数 以下以数组元素为偶数个做例   二分查找(折半查找)的思想:对于已按排序的序列,经过一次比较,可将序列分割成两部分,然后只在有可能包含待查元素的一部分中继续查找,并根据试探结果继续分割,逐

    2024年02月11日
    浏览(50)
  • Java-三个算法冒泡-选择排序,二分查找

    Java算法: 冒泡排序; 解析:将前后两个数对比,将大的数(或小的)调换至后面,每轮将对比过程中的最大(或最小)数,调到最后面。每轮对比数减一;初始对比数为数组长度-1. 选择排序: 解析:选择第一个数依次与其他元素对比,数值小的或(大的)交换位置至前方(

    2024年02月11日
    浏览(37)
  • 【C语言】二分查找的实现

    前言 在我们日常生活中,经常会遇到查找一样东西的情景,比如在一个班的学生成绩中找到xx分对应的人 我们可以尝试用c语言程序解决这类查找问题 我们可以很容易写出这样的代码 这里数组arr中只有十个元素,那如果有100个,1000个,100000000…000个呢? 考虑最坏的情况,我

    2024年02月07日
    浏览(29)
  • golang二分查找算法实现

    项目中使用到有序数组查找特定元素,简单记录下 Golang 中二分查找算法。 二分查找算法是一种在有序数组中查找特定元素的高效算法。它的基本思想是通过不断将查找范围缩小一半,来快速定位目标元素是否存在。该算法要求数组是有序的,这是因为有序数组的特性允许我

    2024年01月25日
    浏览(42)
  • Java 语言哈希查找算法实现

    哈希查找,也称为散列查找,是一种高效的查找算法。它利用哈希函数将映射到数组中的一个位置,通过直接访问该位置来获取元素,从而实现快速查找。Java语言提供了一些类和接口,例如 HashMap 和 HashTable ,使得我们可以方便地使用哈希查找算法。本文将详细介绍

    2024年02月10日
    浏览(44)
  • 二分查找算法讲解及其C++代码实现

    二分查找算法是一种常用的查找算法,也被称为折半查找。它可以在有序的数组或列表中快速查找需要的元素。 算法描述: 首先确定数组的中间位置mid=(left+right)/2; 然后将要查找的值key与中间位置的值进行比较; 如果key等于中间位置的值,则查找成功,返回mid; 如果key小

    2024年02月01日
    浏览(43)
  • 【数据结构与算法】python实现二分查找

    二分查找 又称折半查找,它是一种效率较高的查找方法 原理:首先,假设表中元素是按升序排列,将表中间位置记录的与查找比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的大于查找,则

    2024年02月05日
    浏览(40)
  • 【二分查找的Java实现及其应用】

    二分查找是一种在有序数组中查找特定元素的搜索算法。它的时间复杂度为 O(log n),对于大数据集具有较高的性能。 定义目标值:选择一个目标值,用于查找。 初始化查找范围:将数组分为左侧和右侧两部分,初始化查找范围为数组的中间位置。 检查中间位置的元素:判断

    2024年02月08日
    浏览(49)
  • 二分查找的5种实现--Java版

    云仔☁笔记 1. 基础版 左闭右闭 2. 改动版 左闭右开,即 j 只是一个边界,不可能等于目标元素 时间复杂度 最坏情况 循环次数 L = f l o o r ( l o g 2 ( n ) + 1 ) ∗ 5 + 4 L = floor(log_2(n) + 1) * 5 + 4 L = f l oor ( l o g 2 ​ ( n ) + 1 ) ∗ 5 + 4 行 次数 i j L + 1 int m = (j + i)1; L arr[m] target L target arr

    2024年04月13日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包