package com.gui.erfen;
public class erfenSearch {
/**
* 二分查找
*/
public static void main(String[] args) {
int[] a = new int[] { 3, 11, 34, 56, 72, 88, 90, 110 };
int oneTarget = 72;
int twoTarget = 50;
int oneResult = buggyBinarySearch(a, oneTarget);
int twoResult = buggyBinarySearch(a, twoTarget);
System.out.println("要查找的元素" + oneTarget + "在数组中的下标为:" + oneResult);
System.out.println("要查找的元素" + twoTarget + "在数组中的下标为:" + twoResult
+ (twoResult == -1 ? ",该元素在数组中不存在" : ""));
}
public static int buggyBinarySearch(int[] a, int target) {
// 进行二分法查找的前提是数字已经排好序的,并且升序。
int low = 0;
int high = a.length - 1;
while (low <= high) {
int mid = (low + high) / 2;// 存在经典的bug
int midVal = a[mid];
if (midVal < target)
low = mid + 1;
else if (midVal > target)
high = mid - 1;
else
return mid;
}
return -1;
}
}
分享到:
相关推荐
java二分法查找出数组重复数字是java编程语言中的一种常见算法,用于查找数组中的重复数字。在本文中,我们将详细介绍java实现二分法查找出数组重复数字的方法,并提供了具体的代码实现。 二分法查找是一种常见的...
二分法查找 *进行二分法查找的前提是数组已有序 *查找范围的上下界
下面是一个简单的Java二分法实现示例: ```java public class BinarySearch { public static int binarySearch(int[] array, int target) { int left = 0; int right = array.length - 1; while (left ) { ...
——二分法查找 目录 课程导入 1 清楚并牢记二分法的实现条件 2 理解二分法的实现思路 3 读懂二分法的实现代码 数组的查找——二分法查找 也称拆半查找法,是一种高效的查找方法,前提条件是数组元素必须已经按升序...
二分法查找是一种常用的查找算法,也称为折半查找。它适用于有序数组中查找某个元素的位置。二分法查找的思路是将数组分成两部分,每次查找都将待查找区间缩小一半,直到找到目标元素或者待查找区间为空为止。 ...
本文将深入探讨Java中的冒泡排序、插入排序以及二分法查找这三种基础算法,这些都是面试时经常会被问到的技术点。 首先,让我们从冒泡排序开始。冒泡排序是一种简单直观的排序算法,它重复地遍历待排序的数列,一次...
// 进行二分法查找的前提是数组已经有序! public static int rank(int key, int nums[]) { // 查找范围的上下界 int low = 0; int high = nums.length - 1; // 未查找到的返回值 int notFind = -1; while ...
下面是一个简单的 Java 实现二分法查找的示例代码: ```java public class BiSearch { public static void main(String[] args) { new BiSearch().biFind(new int[]{1, 2, 3, 4, 5, 6, 7}, 3); } public void ...
### 二分法查找算法详解 #### 一、引言 二分法查找(Binary Search),也称为折半查找,是一种在有序数组中查找特定元素的高效算法。它的工作原理是通过将查找区间不断地对半分来缩小查找范围,直至找到目标元素或...
### 冒泡排序、快速排序和二分法查找的分析:Java实现 #### 冒泡排序(Bubble Sort) 冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列...
以下是关于Java实现二分查找法的详细解释: 1. **算法原理**: 二分查找法首先将数组或列表分为左、中、右三部分,然后比较中间元素与目标值的关系。如果目标值等于中间元素,则查找成功;若目标值小于中间元素,...
二分法查找,又称折半查找,是一种在有序数组中搜索特定元素的高效算法。它利用了数组的线性特性,每次将待搜索区域减半,直到找到目标元素或者确定不存在为止。这种方法大大减少了查找所需的平均时间复杂度,是...
本资料包聚焦于"Java常用排序算法"和"程序员必须掌握的8大排序算法",并深入探讨了"二分法查找"这一高效搜索技术。 首先,我们来看八大排序算法。这些算法包括: 1. **冒泡排序**:最简单的排序方法,通过不断交换...
在探讨“二分法查找数组”这一主题时,我们深入解析了其算法原理、实现细节以及性能优势。本文将从二分法查找的基本概念出发,逐步解析其在数组中的应用,进而理解为何它能实现高效的查找效率。 ### 二分法查找基本...
本文将深入探讨Java中常用的八大排序算法以及二分法查找,旨在帮助算法爱好者和开发人员提升解决问题的能力。 首先,让我们来看Java中的八大排序算法: 1. 冒泡排序:这是一种简单的排序方法,通过重复遍历待排序...
### Java 二分法查找与数组排序案例分析 #### 数组排序案例 在Java中,对数组进行排序是一项常见的操作,通常我们有两种排序方式:升序(从小到大)和降序(从大到小)。下面我们将分别介绍这两种排序方法的具体...
本文将详细介绍如何在Java中使用二分法进行查找和排序。 首先,我们来看二分查找算法。二分查找的基本思想是通过不断将待查找区域减半来快速定位目标值。这个过程通常在有序数组中进行。假设我们有一个已排序的数组...
Java JDK 二分法分析demo是一个实用的二分法查找算法的实现,通过该demo可以了解二分法的基本思想和实现方式。下面是对该demo的详细分析: 标题解析 该标题“Java JDK 二分法分析demo(推荐)”表明该demo是一个...
在本文中,我们使用Java语言实现了二分法查找和原始算法查找,并使用System.currentTimeMillis()方法来计算算法的运行时间。实验结果表明,二分法查找的效率远远高于原始算法查找,尤其是在大规模数据集查找时。因此...