二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。
package org.iaiai.suanfa;
import java.util.Arrays;
/**
*
* <p>
* Title: SortFind.java
* </p>
* <p>
* E-Mail: 176291935@qq.com
* </p>
* <p>
* QQ: 176291935
* </p>
* <p>
* Http: iaiai.iteye.com
* </p>
* <p>
* Create time: 2011-8-5
* </p>
*
* @author 丸子
* @version 0.0.1
*/
public class SortFind {
/**
* 二分查找算法
*
* @param srcArray
* 有序数组
* @param des
* 查找元素
* @return des的数组下标,没找到返回-1
*/
public static int binarySearch(int[] srcArray, int des) {
int low = 0;
int high = srcArray.length - 1;
while (low <= high) {
int middle = (low + high) / 2;
if (des == srcArray[middle]) {
return middle;
} else if (des < srcArray[middle]) {
high = middle - 1;
} else {
low = middle + 1;
}
}
return -1;
}
public static void main(String[] args) {
int src[] = { 12, 34, 9, -23, 45, 6, 45, 90, 123, 19, 34 };
Arrays.sort(src); // 排序
System.out.println(binarySearch(src, 12));
}
}
分享到:
相关推荐
Java 二分查找实现 Java 二分查找是搜索有序数组中某个元素的最常用算法之一。它的实现原理是将数组分成两个部分,然后在其中一个部分继续进行搜索,直到找到目标元素或确定目标元素不存在。下面将详细介绍 Java 二...
java 二分查找 java 二分查找java 二分查找 java 二分查找java 二分查找 java 二分查找java 二分查找 java 二分查找java 二分查找 java 二分查找java 二分查找 java 二分查找java 二分查找 java 二分查找java 二分...
以下是一个简单的Java二分查找的示例代码: ```java public class BinarySearchDemo { public static int binarySearch(int[] array, int target) { int left = 0; int right = array.length - 1; while (left...
Java 中实现二分查找的基本步骤如下: 1. 首先,设定查找区间的左右边界,通常为数组的第一个元素索引(0)和最后一个元素索引(数组长度减一)。 2. 计算中间索引,即 (左边界 + 右边界) / 2,确保结果为整数。 3....
以下是一个简单的Java二分查找法实现,假设数组已经排序: ```java public class MyBinary { public static int binarySearch(int[] array, int target) { int low = 0; int high = array.length - 1; while ...
用java二分查找法实现日期搜索 用java二分查找法实现日期搜索 用java二分查找法实现日期搜索
Java二分查找递归算法
### Java二分查找算法知识点详解 #### 一、二分查找算法概述 二分查找算法是一种在有序数组中查找特定元素的搜索算法。其工作原理是通过将目标值与数组中间元素进行比较来缩小搜索范围,进而达到快速查找的目的。...
Java二分查找 Java二分查找是一种高效的搜索算法,用于在有序数组中搜索目标值。该算法的时间复杂度为O(log n),远远优于线性搜索的O(n)时间复杂度。 二分查找的基本思想 二分查找的基本思想是将搜索范围缩小到...
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好,占用系统内存较少;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素...
用java实现二分查找法BianrySearch 用java实现二分查找法BianrySearch 用java实现二分查找法BianrySearch
java实现二分查找,包含时间复杂度的计算
JAVA用递归和非递归的方法实现二分查找
本文将深入探讨Java中实现的两种经典算法:二分查找(Binary Search)和快速排序(Quick Sort),并通过一个名为"WorkDemo"的Applet程序来具体阐述它们的实现方式。 **二分查找**是一种在有序数组中查找特定元素的...
二分查找的三种实现方式 分别是: while for 递归
while(low){ if(x==arr[mid]){ return mid; } else if(mid>0&&x[mid]){... else if(mid){//若前面没有判断,则当要查找数超过arr数组中最大值时出现死循环。 low=mid+1; mid=(low+high)/2; }
用java实现了二分查找,效率较高,思路清晰易懂。
Java二分查找算法实现代码实例 Java二分查找算法实现代码实例主要介绍了Java中的二分查找算法实现代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值。需要的朋友可以参考下。...
在Java中,我们可以使用两种方式实现二分查找:普通方法和递归方法。首先,让我们看看普通方法的实现: ```java public static int binarySearch(int array[], int key) { int mid = array.length / 2; int head ...
在Java中实现二分查找,首先需要一个已排序的数组。在提供的代码示例中,我们有一个名为`sortedArray`的整数数组,包含一系列递增的数值。目标是查找特定的`target`值。 `binarySearch`方法是实现二分查找的核心。...