java数组之二分查找法(折半查找)
来源:互联网 发布:充电宝推荐 知乎 编辑:程序博客网 时间:2024/06/05 06:19
二分法就是用折半的思想。
屁话不多说,上源码!!!!!
public class BinarySearch {
/**
* 二分查找法:折半
* 折半查找
*
* 使用条件:
* 必须是有序数组
*
* 需要三个变量:
* int min=0 int max=数组.length int mid=(min+max)/2
*
* 结束条件
* min<=max
*
* 思路:
* 让被查找的元素,和中间元素进行比较
* 如果:被查找元素 > 中间元素,则把中间元素及其前面较小的元素都舍去掉(即不管,不关注),
* 则min=mid+1,max不变,mid=(min+max)/2
*
* 否则如果:被查找元素<中间元素,则把中间元素及其后面较大的元素都舍去掉(即不管,不关注)
* 则min=mid-1,max不变,mid=(min+max)/2
*
* 否则如果:被查找元素==中间元素,查找到了元素,结束
*
* 否则:查找不到要查找的元素
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr1= {1,4,8,10,12,17,22,28,33,40,43,66};
int index=binarySearch(arr1,28);
System.out.println(index);
}
/**
*
* @param arg
* @param key:表示我要查找的数组
*/
public static int binarySearch(int[] arg,int key) {
int min=0;
int max=arg.length;
int mid;
//折半查找
while(min<=max) {
//mid代表数组中间的索引
mid=(min+max)/2;
if(key>arg[mid]) {//被查找元素大于中间元素
min=mid+1;
}else if(key < arg[mid]){//被查找元素<中间元素
max=mid-1;
}else {//其它情况都结束(其实就是被查找元素==中间元素)
return mid;
}
}
return -1;
}
}
- java数组之二分查找法(折半查找)
- 查找-二分查找(折半查找)-java
- JAVA算法之 二分查找法<又称折半查找>
- 二分(折半)法查找--Java
- 折半查找(二分查找)Java实现
- 二分查找(折半查找),Java实现
- JAVA二分查找法(折半查找法)
- 二分查找(折半查找) java
- Java二分查找、折半查找
- JAVA数组排序——二分(折半)查找
- 折半查找法(二分查找法)
- 折半查找法(二分查找)
- java数组(折半查找)
- 查找算法之折半查找(二分查找)
- 折半查找(二分查找)
- 二分查找(折半查找)
- 二分查找(折半查找)
- 折半查找(二分查找)
- Android Studio中使用Lambda表达式
- #pragma pack(n)和__attribute__((aligned(m)))的区别
- C语言对编程学习的重要性
- 开启snmp协议以及mibbrowser测试是否连接正常。
- Linux——常用基本命令
- java数组之二分查找法(折半查找)
- unity逆向破解(一) 打开简单加密的Assembly-CSharp.dll
- java: 数据加密类MessageDigest的使用实例
- HDU.4764 Stone
- FL2440开发板移植linux-3.0.10
- ajax基础
- android studio cmake配置opencv3.2.0
- [初学笔记] 控制输出的数值的位数
- ARM_Stress 开发板压力测试