`
mars李
  • 浏览: 50225 次
  • 性别: Icon_minigender_1
  • 来自: 柳州
社区版块
存档分类
最新评论

java版本的二分法算法实现

阅读更多
class ErFenFa
{
int[] iArray={1,5,9,14,27,39,41,50,62,222,345,612,981,1207,8721}; //在此数字序列中寻找
int iSeek=345; //寻找345的位置
int iCount=0; //比较的次数

public int xunhuan()
//普通的循环法,最少需要比较一次,比如查找1,最多需要比较15次,比如8721
{
for(int i=0;i<iArray.length;i++)
{
iCount++;
if (iSeek==iArray[i])
break;
}
return iCount;
}

public int erfen()
//二分法查找
{
int iIndex=0; //相当于指针的东西
int iStart=0; //
int iEnd=iArray.length-1;
while(true)
{
iCount++;
iIndex = (iStart+iEnd)/2;
if(iArray[iIndex]<iSeek)
{
iStart = iIndex;
}
else if(iArray[iIndex]>iSeek)
{
iEnd = iIndex;
}
else
{
break;
}
}
return iCount;
}

public static void main(String[] args)
{
ErFenFa eff=new ErFenFa();
ErFenFa eff1=new ErFenFa();
System.out.println("普通的循环查找,需要比较的次数:"+eff.xunhuan());
System.out.println("二分法查找,需要比较的次数:"+eff1.erfen());
}
}
分享到:
评论
1 楼 qyhdt 2011-03-19  
循环中应考虑数组奇偶数
赋值iIndex时候需要做判断,否则会死循环
if ((iStart + iEnd) % 2 == 0) {
				iIndex = (iStart + iEnd) / 2;
			}else {
				iIndex = (iStart + iEnd) / 2 + 1;
			}


                   

相关推荐

    java算法——二分法查找

    二分法查找 *进行二分法查找的前提是数组已有序 *查找范围的上下界

    java 二分法算法的实例

    下面是 Java 二分法算法的实例,介绍了二分法算法的实现方法和原理。 二分法算法的原理 二分法算法的原理是将数组分为三部分,依次是中值(所谓的中值就是数组中间位置的那个值)前,中值,中值后。然后将要查找的...

    Java实现二分法.rar

    下面是一个简单的Java二分法实现示例: ```java public class BinarySearch { public static int binarySearch(int[] array, int target) { int left = 0; int right = array.length - 1; while (left ) { ...

    Java 二分法检索算法代码实现详解

    Java 二分法检索算法代码实现详解 Java 二分法检索算法是一种高效的搜索算法,它可以快速地在有序数组中查找特定的元素。该算法的基本思想是将数组分成两半,并将目标元素与中间元素进行比较,以确定目标元素的位置...

    Java常用排序算法&程序员必须掌握的8大排序算法+二分法查找

    本资料包聚焦于"Java常用排序算法"和"程序员必须掌握的8大排序算法",并深入探讨了"二分法查找"这一高效搜索技术。 首先,我们来看八大排序算法。这些算法包括: 1. **冒泡排序**:最简单的排序方法,通过不断交换...

    写出二分法查找算法函数实现。

    #### 三、算法实现 ##### 函数签名 ```java public static &lt;T extends Comparable&lt;? super T&gt;&gt; int binarySearch(T[] value, int begin, int end, T key) ``` - **参数说明**: - `T[] value`:表示一个已经按...

    Java 常用数值算法集

    以上仅是部分Java中常用的数值算法,实际的"Java 常用数值算法集"可能包含了更丰富的实现,包括更多复杂的算法和优化。通过这些算法,开发者可以解决各种实际问题,提高代码的科学计算能力。在使用时,应根据具体...

    Java常用高效8大排序算法与二分法查找

    本文将深入探讨Java中常用的八大排序算法以及二分法查找,旨在帮助算法爱好者和开发人员提升解决问题的能力。 首先,让我们来看Java中的八大排序算法: 1. 冒泡排序:这是一种简单的排序方法,通过重复遍历待排序...

    二分法求平方根算法,java源代码

    二分法求平方根算法,java源代码,可直接拷贝到主类中,在main函数中调用mysqrt函数,传入参数x,返回值即为sqrt(x)。注意,当传入值时,返回值为-1

    java常用数值算法

    这个"Java常用数值算法集"可能包含了以上提到的一些算法的实现,通过学习和研究这些代码,开发者不仅可以加深对数值算法的理解,还能提高解决问题的能力。记得在实际使用时,根据具体需求选择合适的算法和库,并优化...

    Java常用排序算法源码

    在编程领域,排序算法是计算机科学中的核心概念,特别是在Java这样的高级编程语言中。排序算法是用来组织和优化数据结构的关键工具,使得数据按照特定规则(如升序或降序)排列。以下是对Java中几种常见排序算法的...

    java实现二分法的完整代码

    Java 实现二分法的完整代码 二分法是一种常用的查找算法,它可以快速地在一个已经排序的数组中找到目标元素。下面,我们将详细介绍 Java 实现二分法的完整代码。 什么是二分法? 二分法是一种查找算法,它可以在...

    java 冒泡算法和插入法排序,二分法查找

    本文将深入探讨Java中的冒泡排序、插入排序以及二分法查找这三种基础算法,这些都是面试时经常会被问到的技术点。 首先,让我们从冒泡排序开始。冒泡排序是一种简单直观的排序算法,它重复地遍历待排序的数列,一次...

    Java常用数值算法集.rar

    "Java常用数值算法集"是一个集合,包含了一系列在Java中实现的常用数值算法。下面将详细探讨这些算法及其在实际应用中的重要性。 1. **线性代数算法**:线性代数是现代计算的核心,涉及到矩阵和向量的操作。例如,...

    Java数值计算算法源代码

    Java实现的这些算法可能包含了迭代次数的控制、收敛条件的判断以及数值稳定性方面的优化。 5. **插值法**:插值是估计未知数据点的一种方法,如拉格朗日插值、牛顿插值、样条插值等。源代码可能包含了各种插值函数...

    Java JDK 二分法 分析demo(推荐)

    算法实现 该demo的实现方式是通过使用二分法查找算法来查找指定值的索引。下面是该demo的实现步骤: 1. 首先,创建一个Long类型的数组,用于存储要查找的数据。 2. 然后,使用二分法查找算法来查找指定值的索引。 3...

    java实现二分法查找出数组重复数字

    java二分法查找出数组重复数字是java编程语言中的一种常见算法,用于查找数组中的重复数字。在本文中,我们将详细介绍java实现二分法查找出数组重复数字的方法,并提供了具体的代码实现。 二分法查找是一种常见的...

    Java常用数值算法集光盘资源

    这个“Java常用数值算法集光盘资源”很可能是包含了一系列用于解决各种数学和工程问题的Java实现算法。数值算法是计算机科学中的一个重要分支,它涉及到如何用计算机处理和求解数学方程、微积分问题、线性代数等。...

Global site tag (gtag.js) - Google Analytics