更新時間:2019-09-06 10:32:01 來源:動力節點 瀏覽2750次
今天動力節點java培訓機構小編為大家分享Java基本算法之二分查找算法,希望此文能夠幫助到正在學習java的小伙伴們,下面就隨小編一起看看Java基本算法之二分查找算法吧。
java二分查找算法
每次查找取數組中位數的值進行比較,
如果目標值值大于中位數的值,則截取中位數右側的數組再次進行二分查找
如果目標值小于中位數的值,則截取中位數左側的數組再次進行二分查找
直到找到相對應的中位數才終止查找算法。
即每經過一次比較,查找范圍就縮小一半。
while循環實現二分查找
private static int binSearch(int array[], int value){ int start=0;
int end =array.length-1;
int middle;
while(start<=end){
middle = (end-start)/2+start;
if(array[middle] < value){
start = middle+1;
}else if (array[middle]>value){
end = middle-1;
}else{
return middle;
}
}
return -1;
}
遞歸實現二分查找算法
private static int binSearch(int array[],int start,int end,int value){
int middle = (end-start)/2+start;
if(array[middle]==value){
return middle;
}
if(start>=end){
return -1;
} else if (array[middle]>value){
return binSearch(array,start,middle-1,value);
}else {
return binSearch(array,middle+1,end,value);
}
}
main方法中調用
public static void main(String[] args) {
int array[] ={1,2,3,4,5};
System.out.println("args = [" + binSearch(array,0,array.length-1,3) + "]");
}
注意事項
要求進行查找的數組必須是有序數組
以上就是動力節點java培訓機構小編為大家分享的“Java基本算法及二分查找算法”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
相關免費視頻教程推薦
java入門教程下載——二分查找:http://www.ilovecolors.com.cn/xiazai/2533.html
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習