您的位置:首页 > 编程语言 > Java开发

java中二分查找的总结

2014-07-14 10:29 260 查看
菜鸟对BinarySearch(二分查找)的总结:

二分查找一般又被称作折半查找

优点是:查找次数比较少,平均性能好

缺点是:

1.要求被查找的数据为有序数组

2.且插入删除操作困难

适用范围:不经常变动且查找操作频繁的有序数组。

代码实现 binarySearch(int[] x, int n) 其中 x为被查找的有序数组,n为被查找的数,返回的mid=-1的话,当前数组中没有n

public static int binarySearch(int[] x, int n){
int start = 0;
int mid = -1;
int end = x.length - 1;
while(start <= end){
mid = (start + end)/2;
if(x[mid] == n){
return mid;
}else if(x[mid] > n){
end = mid - 1;
}else if(x[mid] < n){
start = mid + 1;
}
}return mid;
}


现在我们用一个case来测试,如下

public static void main(String[] args) {

int[] nums = {1,2,3,4,5,6,8,11,45,89,102,99,47,66};
Arrays.sort(nums);
System.out.println("排后的数组为:");
<span style="white-space:pre">	</span>for(int num : nums)
<span style="white-space:pre">	</span>    System.out.print(num+ " ");
//
int index = binarySearch(nums,47);
System.out.println("查找到的下标为:"+index);
}
得出的结果为9.

如上就是一个简单的二分查找实现了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: