這篇文章主要介紹“java二分查找的原理如何實(shí)現(xiàn)”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“java二分查找的原理如何實(shí)現(xiàn)”文章能幫助大家解決問(wèn)題。
在雙流等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作定制開(kāi)發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),全網(wǎng)整合營(yíng)銷推廣,外貿(mào)營(yíng)銷網(wǎng)站建設(shè),雙流網(wǎng)站建設(shè)費(fèi)用合理。
1.二分查找步驟描述
(1)首先確定整個(gè)查找區(qū)間的中間位置 mid = ( left + right )/ 2
(2)用待查關(guān)鍵字值與中間位置的關(guān)鍵字值進(jìn)行比較;
若相等,則查找成功
若大于,則在后(右)半個(gè)區(qū)域繼續(xù)進(jìn)行折半查找
若小于,則在前(左)半個(gè)區(qū)域繼續(xù)進(jìn)行折半查找
(3)對(duì)確定的縮小區(qū)域再按折半公式,重復(fù)上述步驟。
最后,得到結(jié)果:要么查找成功, 要么查找失敗。折半查找的存儲(chǔ)結(jié)構(gòu)采用一維數(shù)組存放。 折半查找算法舉例
2.要求
(1)必須采用順序存儲(chǔ)結(jié)構(gòu)。
(2)必須按關(guān)鍵字大小有序排列。
3.實(shí)例
public class Demo { public static void main(String[] args) { int[] arr={-1,0,3,5,9,12};//查找的數(shù)組 int searchNum=13;//查找的目標(biāo)數(shù) Arrays.sort(arr); int resultOne=binarySearchOne(arr,searchNum,0,arr.length-1); System.out.println(resultOne); int resultTwo=binarySearchTwo(arr,searchNum); System.out.println(resultTwo); } /** * 遞歸實(shí)現(xiàn) * @param arr * @param searchNum * @param start * @param end * @return */ public static int binarySearchOne(int[] arr,int searchNum,int start,int end){ if(start>end) return -1; int middle=(start+end)/2; if(searchNum<arr[middle]) return binarySearchOne(arr,searchNum,start,middle-1); else if(searchNum>arr[middle]) return binarySearchOne(arr,searchNum,middle+1,end); else return middle; } /** * 非遞歸實(shí)現(xiàn) * @param arr * @param searchNum * @return */ private static int binarySearchTwo(int[] arr, int searchNum) { int start=0; int end=arr.length-1; while(start<=end){ int middle=(start+end)/2; if(searchNum<arr[middle]) end=middle-1; else if(searchNum>arr[middle]) start=middle+1; else return middle; } return -1; } }
關(guān)于“java二分查找的原理如何實(shí)現(xiàn)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。
網(wǎng)站名稱:java二分查找的原理如何實(shí)現(xiàn)
鏈接分享:http://jinyejixie.com/article42/poccec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、全網(wǎng)營(yíng)銷推廣、外貿(mào)建站、虛擬主機(jī)、品牌網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)