二分搜尋學習筆記 Java實現

2021-07-22 12:49:56 字數 639 閱讀 9904

二分搜尋演算法:

設有乙個長度為n的有序表(a0,a1 ... an-1);要求在表中搜尋與給定元素x有相同關鍵字值的元素。

若n=0,顯然搜尋失敗,若n>0,則可將有序表分解成若干個子表,二分搜尋:分成兩個子表。

現以a[mid]為劃分點,mid=(0+(n-1))/2;首先將a[mid]關鍵字值與指定元素x的關鍵字值比較

1、當xa[mid]時,若與x相同關鍵字值的元素在表中,則必在(a[mid+1], ... a[n-1])中

以此類推,分割搜尋區間,最終確定搜尋結果。

package datastructureandalgorithm.binarysearch;

/** * 對半搜尋遞迴演算法

* @author zhen

* */

public class bsearch

private int binarysearch(int x,int array,int low,int high)else return m;

} return -1;

} //對半搜尋迭代演算法

public string bserach(int x,int array)else if(x參考:《資料結構——c++語言描述》

Java 二分搜尋

二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。演算法思想 搜素過程從陣列的中間元素開始,如果中間元素正好是要查詢的元素,則搜素過程結束 如果某一特定元素大於或者小於中間元素,則在陣列...

Java 二分搜尋 二分查詢

對陣列元素進行逐個查詢顯然是費時費力的工作,我們可以使用一些方法快速地搜尋出陣列中元素的指定位置.接下來我們介紹一種方法 二分搜尋法 二分搜尋法充分利用了元素間的次序關係.基本思想 將n元素分成個數大致相同的涼拌,取arr n 2 與欲查詢的x做比較,如果 下面將採用兩種方式 遞迴 非遞迴 來展示二...

二分搜尋演算法,Java實現

這裡用遞迴和非遞迴的方式實現了二分搜尋 ps 二分搜尋是對已經排序完成的陣列進行搜尋定位,我這裡是以公升序排列為例,可用歸併排序等演算法進行排序 可見我其他博文 二分搜尋演算法,通過比較順序列表中間元素的值,迅速縮小規模查詢元素,時間複雜度為 o n logn public class binary...