JAVA--二分查找

1、查找

在java中,我們常用的查找有兩種:順序查找、二分查找,下面主要介紹一下二分查找;

2、二分查找的主要思想:首先查找的數組是一個有序數組,然後每次取數組的中間的值與要查找的數比較,如果比較的數大於(小於)中間的數,則在把中間數的右邊(左邊)剩下的數組作爲一個數組來重複上次的操作,直到查到想要的數。

JAVA代碼如下:

/*
 * 功能:二分法的實現
 * 作者:zyj0813
 * 說明:使用二分法之前是默認數組是按照從小到大的順序排列的,在實際運用中,我們需要先排好數組的順序在使用二分法
 */
package com.binary;
public class Demo2 {
public static void main(String[] args) {
int[] arr={1,2,3,4,5};
BinaryFind bf=new BinaryFind();
bf.find(0, arr.length-1, 4, arr);
}
}
//創建二分法類
class BinaryFind{
public void find(int leftIndex,int rightIndex,int val,int[] arr)
{
int midIndex=(leftIndex+rightIndex)/2;  //求出中間值的腳標
int midVal=arr[midIndex];//求出中間值
if(leftIndex<=rightIndex)//判斷條件,避免遞歸死循環
{
if(midVal>val)//查找的值小於中間值的情況
{//在左邊找
find(leftIndex,midIndex-1,val,arr);//遞歸
}else if(midVal<val)//查找的值大於中間值的情況
{//在右邊找
find(midIndex+1,rightIndex,val,arr);  //遞歸
}else if(midVal==val)//兩者相等的情況
{
System.out.println("下標爲:"+midIndex);//打印結果
} 
}
}
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章