一個(gè)簡單的二分查找算法:
import java.util.Arrays;
public class BinarySearch {
public static int rank(int key,int[] a)
{
int lo=0;
int hi=a.length-1;
while (lo<=hi)
{
int mid=lo+(hi-lo)/2;
if (key<a[mid])hi=mid-1;
else if (key>a[mid])lo=mid+1;
else return mid;
}
return -1;
}
public static void main(String[] args)
{
int[] whilelist={84,48,36,12,14,74,35,93};
Arrays.sort(whilelist);
// System.out.println(whilelist);
int[] sc={84,48,36,100,123};
System.out.println(sc.length);
for (int i=0;i<sc.length;i=i+1)
{
int key=sc[i];
if (rank(key, whilelist) < 0)
System.out.println(key);
}
}
}
????????簡單描述:算法由靜態(tài)方法rank()實(shí)現(xiàn),它接受一個(gè)整數(shù)鍵和一個(gè)有序的int數(shù)組作為參數(shù),如果整數(shù)存在于數(shù)組,返回它的索引,否則返回-1,算法使用兩個(gè)變量lo和hi,并保證整數(shù)如果存在于數(shù)組中則它一定存在于a[lo...hi]中,然后通過循環(huán)不斷查找,每次查找如果沒有查找到就將查找范圍縮小一半。文章來源:http://www.zghlxwxcb.cn/news/detail-812252.html
? ? ? ? 二分查找法之所以快是因?yàn)樗恍枰檎液苌賻讉€(gè)條目就能找到目標(biāo)元素。文章來源地址http://www.zghlxwxcb.cn/news/detail-812252.html
到了這里,關(guān)于【算法】簡單的二分查找算法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!