`
sslaowan
  • 浏览: 377597 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

二分法程序例子

阅读更多

<script>
var a=new Array(3,6,8,10,12,15,16,18,21,25,30);
//var a=["林大头","王大头","陈大头","张大头","李大头","郑大头","黄大头"]

function seach(n){
 var low=0,mid,high=a.length-1;

 while( low <= high ){
  mid = Math.floor((low + high) / 2);
  if (a[mid]==n) return mid;
  if (a[mid]<n) low=mid+1;
  else high=mid-1;
 }
 return -1;
}

alert(seach(15));
</script>

java版本的二分法算法实现


/**
文件名:ErFenFa.java
描述:在一个已经排好顺序的数字序列中,找出某个已知数字的位置
作者:慈勤强
Email:cqq1978@Gmail.com
Http://blog.csdn.net/cqq
**/

 

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());
 }
}



分享到:
评论

相关推荐

    二分法程序

    - `main()` 函数是程序的入口点,负责执行二分法搜索。 #### 变量声明 - `x1`, `x2`, 和 `x3` 分别代表当前搜索区间的左端点、右端点和中间点。 - `a` 和 `b` 由用户输入,作为初始搜索区间的边界。 - `m` 是一个...

    数值分析二分法C程序

    在给定的"数值分析二分法C程序"中,我们可以深入探讨二分法的原理以及如何用C语言实现这一算法。 二分法的基本思想是:对于一个连续函数f(x),如果已知它在某个闭区间[a, b]上存在零点(即f(a) * f(b) ),那么可以...

    二分法的改进

    从上述例子可以看出,与标准二分法相比,改进后的二分法能够更快地收敛到解的近似值,大大减少了所需的迭代次数。 #### 五、结论 综上所述,尽管传统的二分法在解决非线性方程求根问题时已经足够强大,但通过对其...

    c语言二分法递归求解函数根

    在这个例子中,我们首先定义了一个函数f(x) = x^2 - 4,然后使用二分法递归函数`binary_search`来求解它的根。主函数`main`中设置了初始区间[-5, 5]和精度0.0001,最后打印出计算得到的根。 请注意,实际应用中,...

    二分法_二分法解方程_

    程序首先初始化区间[-5, 5],然后在每次迭代中,通过比较中间点的函数值与端点的函数值来缩小区间。当区间长度小于0.0001时,返回最后的中点作为根的近似值。 二分法解方程的关键在于函数必须在给定区间内连续且...

    Matlab二分法及实例

    实例6-1二分法可能包含了具体使用上述函数解决某个具体问题的例子。通常,实例会先定义一个连续函数,如`f(x) = x^3 - 2*x - 5`,然后调用`bisection`函数并提供合适的初始区间,如`[1, 3]`,以及期望的精度和最大...

    二分法 文件写入读出

    在Java编程语言中,二分法是一种高效的搜索技术,它基于分治...这个例子展示了如何在实际项目中结合使用二分法、文件I/O、排序和随机数生成等Java编程技巧。在处理大量数据时,这样的方法可以提高程序的效率和性能。

    VB的二分法求方程算法

    在VB(Visual Basic)环境中,我们可以利用二分法来编写一个程序,解决如题所述的方程求解问题。在给定的标题“VB的二分法求方程算法”中,我们主要关注的是如何用VB实现二分法来寻找方程`x^3 + 4x^2 - 10 = 0`在...

    VC++6.0二分法设计

    在这个例子中,我们首先定义了一个`binarySearch`函数,它接受一个排序好的数组、目标值、左边界和右边界作为参数。然后在`main`函数中,我们创建了一个已排序的数组,并调用`binarySearch`函数来查找目标值。如果...

    matlab实现二分法,迭代法_matlab_二分法_迭代法_

    在提供的压缩包中,很可能包含了一个MATLAB脚本,该脚本实现了这两种方法,并提供了一个实验例子来演示如何使用它们。实验可能包括了不同类型的方程,以便用户理解和实践这两种数值方法。 在实际应用中,二分法和...

    用二分法求方程的根.doc

    这个例子展示了二分法的有效性,即使在较大的区间和高次方程中,也能准确找到根。然而,需要注意的是,二分法的收敛速度较慢,可能需要多次迭代才能达到指定精度,特别是在方程的导数接近零的点附近。尽管如此,由于...

    用matlab二分法代码-theMorseMachineMatlab程序,将莫尔斯电码编码的单词转换为纯

    用matlab二分法代码摩斯机器 关于摩尔斯电码 摩尔斯电码是电信中使用的一种字符编码方案,它将文本字符编码为两个不同信号持续时间(称为点( 。 )和破折号( - )或dit和dahs)的标准化序列。 国际摩尔斯电码对26...

    用matlab二分法代码-theMorseMachine Matlab程序,将莫尔斯电码编码的单词转换为纯文本t

    用matlab二分法代码摩斯机器 关于摩尔斯电码 摩尔斯电码是电信中使用的一种字符编码方案,它将文本字符编码为两个不同信号持续时间(称为点( 。 )和破折号( - )或dit和dahs)的标准化序列。 国际摩尔斯电码对26...

    用matlab二分法代码-theMorseMachineMatlab程序,将莫尔斯电码编码的单词转换为纯文本_rezip.zip

    用matlab二分法代码摩斯机器 关于摩尔斯电码 摩尔斯电码是电信中使用的一种字符编码方案,它将文本字符编码为两个不同信号持续时间(称为点( 。 )和破折号( - )或dit和dahs)的标准化序列。 国际摩尔斯电码对26...

    C语言编程一元N次方程二分法求根,例HS1101湿度传感器

    在这个特定的例子中,我们关注的是使用C语言来解决一元N次方程的求根问题,特别是通过二分法。C语言是一种底层、高效且广泛使用的编程语言,非常适合这样的数学计算任务。 一元N次方程是指只含有一个变量的多项式...

    二分法解方程

    1. **初始化区间**:首先,我们需要一个包含零点的闭区间 `[x1, x2]`,在这个例子中,`x1 = 1` 和 `x2 = 2`,它们是方程 `f(x) = x^2 - 2` 的两个点,满足 `f(x1)` 和 `f(x2)` 符号相反,即 `f(x1) * f(x2) 。...

    软件工程第章程序编码.pptx

    本章节还提供了一些实践性的例子,例如打印 A、B、C 三数中最小者的程序、用二分法求方程 f(x) = 0 在区间 [a..b] 中的根的程序等,这些例子旨在展示结构化程序设计的原则和方法。 此外,本章节还讨论了程序设计...

    数据结构-3期(KC002) 二分法查找算法.docx

    在给定的例子中,`low`初始为1,`high`初始为数组长度`n`。 2. 当`low`小于等于`high`时,执行以下操作: - 计算中间位置`mid`:`mid = (low + high) / 2`。 - 检查中间元素`R[mid].key`是否等于目标值`K`: - ...

    2017-2018版高中数学第三章函数的应用341第2课时用二分法求方程的近似解学案苏教版 .pdf

    二分法是一种在数学中寻找实数方程解的有效算法,尤其适用于...总之,二分法是寻找连续函数零点的一种基础且实用的技术,它体现了逐步逼近和程序化思维的数学理念,适用于高中数学教育,帮助学生掌握基本的数值方法。

Global site tag (gtag.js) - Google Analytics