`
zengshaotao
  • 浏览: 787605 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

二分法

 
阅读更多


public class Arithmetic {

 public static void main(String args[]){
  

//二分法,一般用于已经排序的数组,数据量大时,性能优势更为明显
    //如果无序,可先排序
  int tt[] = {-3,0};
  int loopCount = tt.length;
  
  System.out.println(erfen(-1,tt,0,loopCount-1));
  
 }
 
 //对于递归,递归方法里一定有迭代的不断变化的参数,这里是起始和终止index
 //不管如何递归,都是对被查询的数据和数组进行操作,所以searchdata和
 //arr是可以不发生变化并作为递归方法的参数
 public static int erfen(int searchdata,int[]arr,int start,int endIndex){
  int index;
  
  //对于被寻找的数据在数组边缘的情况需要单独考虑
  //在边缘时也囊括了数组长度比较极端的情况,长度为1,或者2,
  //对于数据量比较少的情况,一般不采用特殊的算法,直接遍历就ok
  if(searchdata==arr[start]){//寻找的数在数组的第一个位置
   index = start;
   System.out.println(searchdata +" index is :" +index);
   return index;
  }else if(searchdata==arr[endIndex]){//寻找的数在数组的最后一个位置
   index = endIndex;
   System.out.println(searchdata +" index is :" +index);
   return index;
  }
  if((endIndex-start)<=1){//此时两个数已经相邻
   index = 0;
   System.out.println("not existing ");
  }else{
   index = (endIndex+start)/2;
   if(searchdata<arr[index]){
    index = erfen(searchdata,arr,start,index);
   }else if(arr[index]==searchdata){
    System.out.println(searchdata +" index is :" +index);
   }else if(arr[index]<searchdata){
    index = erfen(searchdata,arr,index,endIndex);
   }
  }
  
  return index;
 }
}

分享到:
评论

相关推荐

    二分法流程图1

    二分法流程图1 二分法是一种常用的数值计算方法,用于寻找单变量函数的零点。它的基本思想是通过不断地将搜索范围缩小,来逼近函数的零点。下面我们将通过流程图来详细地介绍二分法的工作过程。 首先,我们需要...

    二分法排序算法 C语言实现

    根据给定的文件信息,我们可以总结出以下关于“二分法排序算法C语言实现”的相关知识点: ### 1. 二分法搜索算法原理 二分法搜索算法,也称为折半查找算法,是一种在有序数组中查找特定元素的搜索算法。其基本思想...

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

    二分法,也称为折半搜索,是一种在有序数组中查找特定元素的搜索算法。它通过不断将查找区间减半,快速定位目标值。在数值分析领域,二分法也被用于求解方程,特别是连续函数的零点。在本案例中,我们将探讨如何用...

    温度转换二分法_二分法_温度二分法查表_40_

    标题中的“温度转换二分法”是指在处理温度测量时,采用二分法来查找温度对应的电压或电阻值。二分法,又称折半查找法,是一种高效的算法,常用于有序数据集合中寻找特定元素。在温度测量领域,如果我们有一个预设的...

    二分法和牛顿迭代法求解方程

    二分法和牛顿迭代法是两种常用的数值计算方法,常用于求解方程。这两种方法各有特点,适用场景不同,且在效率上有所差异。 首先,二分法(也称为折半查找法)是一种基于区间分割的算法,主要用于解决连续函数在已知...

    非线性方程求根——二分法python

    对于区间[a,b]上连续不断且f(a)·f(b)的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫二分法。 算法:当数据量很大适宜采用该...

    二分法排序和查找(C#)

    二分法,也称为折半查找,是一种在有序数组中高效地查找特定元素的搜索算法。它的基本思想是每次比较中间元素与目标值,根据比较结果缩小搜索范围,直到找到目标值或者确定不存在为止。这种方法在C#编程中非常常见,...

    C/C++语言的二分法求方程的根

    二分法,也称为折半搜索法,是一种在数值计算中广泛应用的算法,尤其在寻找方程的实数根时非常有效。它基于连续函数在有限区间内的中间值定理,即如果一个连续函数在一个闭区间上既有正又有负的值,那么至少存在一个...

    二分法文献和程序

    二分法,也称为折半搜索或二分搜索,是一种在有序数组中查找特定元素的搜索算法。这个方法的核心思想是通过不断将搜索区间减半,来快速定位目标值的位置。二分法在信息技术、数据处理和算法设计等领域有着广泛的应用...

    二分法求解非线性方程的解

    二分法求解非线性方程的解是一种在数值分析中常用的方法,尤其适用于求解定义良好的非线性方程在某个区间内的根。这种方法依赖于函数的连续性和介值定理,通过逐步缩小包含根的区间,最终找到满足精度要求的近似解。...

    二分法_二分法解方程_

    二分法,也称为折半搜索或二分搜索,是一种在有序数组中查找特定元素的搜索算法。这个方法的关键在于其高效性,每次查询都能将搜索区间减半,因此在大量数据中查找特定值时非常有效。二分法不仅用于查找,还可以应用...

    二分法解线性方程二分法解线性方程

    二分法,也称为折半搜索或区间搜索,是一种在有序序列中查找特定元素的搜索算法。它通过不断将搜索范围减半来逼近目标值,适用于解决特定类型的数学问题,如寻找连续函数的零点。在本场景中,我们将探讨如何运用...

    二分法计算方法及VB编程代码设计

    二分法计算方法及VB编程代码设计 二分法是一种常用的数值分析方法,用来求解非线性方程的根。其基本思想是将搜索区间不断地缩小,直到找到根所在的位置。二分法的优点是计算速度快、精度高,但需要搜索区间的初值离...

    VC++6.0 实现计算方法中的二分法

    二分法,又称折半搜索法,是一种在有序数组中查找特定元素的搜索算法。它以其高效的性能在计算方法中占据重要地位,特别是在解决数值计算问题时,如求解方程的根、优化问题和搜索特定值。在VC++6.0环境下实现二分法...

    PT100用二分法查表计算温度

    标题和描述中的“PT100用二分法查表计算温度”涉及到的是在工业自动化领域中非常重要的一个传感器——PT100热电阻温度传感器的温度计算方法。PT100是一种常用的金属热电阻,其阻值随温度变化而变化,常用于测量-200...

    三种二分法MATLAB程序

    二分法,也称为折半查找法或区间搜索法,是一种在有序数据集合中寻找特定元素的算法。在MATLAB中,二分法通常用于数值计算,如求解方程的根、查找数组中的特定值或者优化问题。下面将详细讨论三种不同的二分法MATLAB...

    VB 二分法求方程根

    在VB(Visual Basic)编程语言中,二分法是一种经典的数值方法,用于寻找单变量方程的实数根。这种方法适用于连续函数,并且在给定的区间内已知函数值改变符号。以下是对二分法及其在VB中实现的详细解释。 首先,...

    用二分法求方程近似解

    二分法,也称为折半查找法,是一种在有序数据集合中寻找特定元素或解问题的有效算法。在数学上,二分法常用于求解连续函数的根,即找到使得函数值等于零的点。本题是用C#编程语言实现二分法来求解方程的近似解。 ...

    二分法的使用

    二分法的使用 二分法是一种常用的数值计算方法,用于找到函数的零点或极值。在计算机科学中,二分法是解决直际问题的重要工具。下面我们将详细介绍二分法的使用和实践。 二分法的定义 二分法是一种数值计算方法,...

    二分法、牛顿迭代法方程求根.txt

    在计算机科学与数值分析领域,二分法与牛顿迭代法是解决多项式方程求根问题中的两种经典且高效的方法。以下将详细介绍这两种方法及其应用。 ### 二分法 二分法(Bisection Method)是一种基于区间划分的求根算法,...

Global site tag (gtag.js) - Google Analytics