package com.shuobaotang.interview;
/**
* 实现二分查找法
* 给定一个有序的数组,和要查找的数字,如果查找成功
* 返回数字在数组中的索引,否则返回-1
* @author yangjianzhou
*
*/
public class BinarySearch {
public static int binarySearch(int [] intArray,int target){
int high = intArray.length-1;
int low = 0;
int middle;
while(low <= high){
middle = (high+low)/2;
if(target == intArray[middle]){
return middle;
}else if( target<intArray[middle]){
high = middle - 1;
}else{
low = middle + 1;
}
}
return -1;
}
public static void main(String[] args) {
int [] aa = {1,2,3,4,5,6,7,8};
System.out.println(binarySearch(aa,9));
System.out.println(binarySearch(aa,2));
System.out.println(binarySearch(aa,5));
}
}
运行结果:
-1
1
4
分享到:
相关推荐
以下是一个简单的 Java 二分查找算法示例: ```java public class BinarySearchDemo { public static int binarySearch(int[] array, int target) { if (array == null || array.length == 0) { return -1; } ...
Java二分查找递归算法
### Java二分查找算法知识点详解 #### 一、二分查找算法概述 二分查找算法是一种在有序数组中查找特定元素的搜索算法。其工作原理是通过将目标值与数组中间元素进行比较来缩小搜索范围,进而达到快速查找的目的。...
二分查找:分别使用Java和Python实现二分查找算法 二分查找:分别使用Java和Python实现二分查找算法 二分查找:分别使用Java和Python实现二分查找算法 二分查找:分别使用Java和Python实现二分查找算法 二分查找:...
经典Java笔试算法解析和代码:二分查找.zip 经典Java笔试算法解析和代码:二分查找.zip 经典Java笔试算法解析和代码:二分查找.zip 经典Java笔试算法解析和代码:二分查找.zip 经典Java笔试算法解析和代码:二分查找...
二分查找算法是一种高效的数据搜索方法,主要应用于已排序的序列。它的基本思想是通过不断地将待搜索区域减半来快速定位目标值。这个过程基于分治策略,将大问题分解为更小的子问题来解决。在二分查找算法中,每次...
在Java中实现二分查找,首先需要一个已排序的数组。在提供的代码示例中,我们有一个名为`sortedArray`的整数数组,包含一系列递增的数值。目标是查找特定的`target`值。 `binarySearch`方法是实现二分查找的核心。...
本代码是利用java语言实现基本数据查询功能,实现算法为二分查找法
2. **查找算法**:顺序查找、二分查找、哈希查找等,以及在不同数据结构中的应用。 3. **递归与分治**:如斐波那契数列、汉诺塔问题、快速排序的递归实现等。 4. **动态规划**:解决最优化问题,如背包问题、最长...
典型的算法包括排序(如冒泡排序、选择排序、插入排序、快速排序、归并排序等)、查找(线性查找、二分查找、哈希查找等)、图的遍历(深度优先搜索DFS和广度优先搜索BFS)、动态规划、贪心算法以及回溯法等。...
Java 二分查找是搜索有序数组中某个元素的最常用算法之一。它的实现原理是将数组分成两个部分,然后在其中一个部分继续进行搜索,直到找到目标元素或确定目标元素不存在。下面将详细介绍 Java 二分查找的实现技术。 ...
算法部分则包括排序(如冒泡排序、选择排序、插入排序、快速排序、归并排序)、搜索(线性搜索、二分搜索)、递归、动态规划、贪心算法、回溯算法等。这些算法可以帮助我们解决各种实际问题,比如查找列表中的最大值...
根据给定的文件信息,我们可以总结出几种在Java中实现的...以上算法在Java中的实现涵盖了从简单到复杂的查找技术,包括线性查找、二分查找以及基于树的数据结构查找,为程序员提供了多种选择,以适应不同场景下的需求。
2. **折半排序**:这里的“折半”可能是指二分查找排序(Binary Insertion Sort),它是在插入排序的基础上改进的,当在有序序列中插入一个元素时,采用二分查找的方法找到插入位置,以减少比较次数。这种排序方法在...
二分查找算法实现-修正1 二分查找算法是计算机科学中一种常用的查找算法,通过将要查找的数组分成两半,并不断缩小查找范围来找到目标元素。该算法的实现可以在多种编程语言中使用,包括C++、Java、C#等。 在给定...
接着,我们讨论折半查找,也称为二分查找。这种方法适用于已排序的数组,其效率显著高于顺序查找。折半查找的基本步骤是先确定待查找区间的边界,然后计算中间位置的索引,如果中间元素等于目标值,则返回该索引;...
2. **查找算法**:线性查找、二分查找和基于散列的查找方法。 3. **递归与动态规划**:解决复杂问题的有效手段,如斐波那契数列、背包问题和最短路径计算。 4. **字符串处理**:模式匹配算法(如KMP算法)、字符串...
在编程领域,二分查找(Binary Search)是一种高效地在有序数组或集合中搜索特定元素的算法。这个算法充分利用了数组的线性特性,通过不断缩小搜索范围来找到目标值。下面我们将深入探讨Java实现二分查找的具体步骤...
3. **二分查找**:二分查找只适用于有序的数据集合,如数组。它通过不断将搜索区间减半来缩小查找范围,平均时间复杂度为O(log n)。二分查找的实现需要递归或循环结构。 4. **哈希查找**:哈希查找利用哈希函数将...
2. **算法分类**:书中可能涵盖了排序算法(如冒泡排序、选择排序、插入排序、快速排序等)、查找算法(如线性查找、二分查找)、图算法(如深度优先搜索、广度优先搜索)和动态规划等经典算法类别。 3. **算法分析...