一个简单的二分查找算法:
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);
}
}
}
简单描述:算法由静态方法rank()实现,它接受一个整数键和一个有序的int数组作为参数,如果整数存在于数组,返回它的索引,否则返回-1,算法使用两个变量lo和hi,并保证整数如果存在于数组中则它一定存在于a[lo...hi]中,然后通过循环不断查找,每次查找如果没有查找到就将查找范围缩小一半。文章来源:https://www.toymoban.com/news/detail-812252.html
二分查找法之所以快是因为它只需要查找很少几个条目就能找到目标元素。文章来源地址https://www.toymoban.com/news/detail-812252.html
到了这里,关于【算法】简单的二分查找算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!