目录
1.二分查找的优势:
对比顺序查找,可以提高查找效率
2.二分查找的前提条件:
数据必须是有序的
如果数据是乱的,先排序再用二分查找得到的索引没有实际意义,只能确定当前数字在数组中是否存在,因为排序之后数字的位置就可能发生变化了
3.二分查找的过程:
min和max表示当前要查找的范围mid是在min和max中间的
如果要查找的元素在mid的左边,缩小范围时,min不变,max等于mid减1如果要查找的元素在mid的右边,缩小范围时,max不变,min等于mid加 1
package sort_learning;
public class sort_fast {
public static void main(String[] args) {
//调用二分查找
int []arr={1,2,3,4,5};
find(arr,5);
}
public static void find(int []arr,int input){
int min=0;
int max=arr.length-1;
while (true){
if(min>max){
System.out.println("找不到");
return ;
}
int mid=(min+max)/2;
if(arr[mid]<input){
min=mid+1;
} else if (arr[mid]>input) {
max=mid-1;
}else {System.out.println(mid);return;}
}
}
}
结果:返回索引(排序好的索引);

博客介绍了二分查找的相关知识。二分查找对比顺序查找可提高效率,其前提是数据必须有序,若数据无序,排序后用二分查找只能确定元素是否存在。查找过程中,通过min和max确定范围,mid为中间值,根据元素与mid的位置关系缩小范围,最终返回排序好的索引。
2232

被折叠的 条评论
为什么被折叠?



