二分查找
来源:互联网 发布:图片添加文字软件 编辑:程序博客网 时间:2024/04/27 19:22
v二叉查找又叫二分查找
v算法描述:
找到数组中位于中间位置的元素,并将其与查找值相比较,如果两者相等,就返回该元素的索引;否则,将问题简化为查找已排序数组的一半元素——如果查找值小于数组的中间元素,就查找数组的前半部分,否则就查找数组的后半部分(假设数组是按升序排列)
找到数组中位于中间位置的元素,并将其与查找值相比较,如果两者相等,就返回该元素的索引;否则,将问题简化为查找已排序数组的一半元素——如果查找值小于数组的中间元素,就查找数组的前半部分,否则就查找数组的后半部分(假设数组是按升序排列)
v
int []array={1,3,5,9,11,12,15,16,18,29};
int middle;
boolean flag=false;
boolean again=false;
Scanner input=new Scanner (System.in);
System.out.println("请输入您要查找的数字:");
//int search=input.nextInt();
do{
int search=input.nextInt();
int low=0;
int high=array.length-1;
do{
middle=(low+high)/2;
if(search==array[middle]){
//System.out.println("查找成功该数的索引是:"+middle);
flag=true;
break;
}
else if(search<array[middle])
high=middle-1;
else
low=middle+1;
}while(low<=high);
if(flag){
System.out.println("查找成功,该数的索引是:"+middle);
again=false;
break;
}
else{
System.out.println("很遗憾,未找到您要查找的数!请重新输入:");
again=true;
}
}while(again);
int middle;
boolean flag=false;
boolean again=false;
Scanner input=new Scanner (System.in);
System.out.println("请输入您要查找的数字:");
//int search=input.nextInt();
do{
int search=input.nextInt();
int low=0;
int high=array.length-1;
do{
middle=(low+high)/2;
if(search==array[middle]){
//System.out.println("查找成功该数的索引是:"+middle);
flag=true;
break;
}
else if(search<array[middle])
high=middle-1;
else
low=middle+1;
}while(low<=high);
if(flag){
System.out.println("查找成功,该数的索引是:"+middle);
again=false;
break;
}
else{
System.out.println("很遗憾,未找到您要查找的数!请重新输入:");
again=true;
}
}while(again);
}
二叉查找条件:已排序数组
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 随机快速排序
- internet explorer cannot display image picture from google group?我的问题就这么解决了View > Encoding >
- 关于龙芯
- 浏览器显示TIF格式传真文件
- su&sudo
- 二分查找
- 【IT系列之7】人脉关系系统怀胎十月诞生记
- 用J2ME在移动设备上实现动画
- vector.resize 与 vector.reserve的区别
- 求助!!!未将对象设置引用到实例的问题
- Linux下C/C++开发环境的配置
- 今天解决了一个灵异事件
- 双缓存技术在J2ME中的实现
- 彻底明白Java的IO系统