二分法快速查找算法
2017-02-22 22:27
232 查看
//二分法快速查找数组中的元素
public class TestSearch {
public static void main(String[] args) {
int a[] = {1,3,6,8,9,10,12,18,20,34};
int i = 12;
System.out.println(binarySearch(a,i));
}
public static int binarySearch(int a[],int num) {
if(a.length==0) return -1;
int start = 0;
int end = a.length - 1;
int m = (start + end) / 2;//最开始中间那个位置
while(start <= end) {//循环条件 只要start<=end 就要接着找
if(num == a[m]) return m;//相等时返回
if(num > a[m]) { //如果要查找的值>中间那个值 那么start相应变为中间那个位置+1
start = m + 1;
}
if(num <a[m]) {
end = m+1;
}
m = (start + end) / 2;
}
return -1;//如果在数组中没有找到想要的值 那么返回-1
}
}
public class TestSearch {
public static void main(String[] args) {
int a[] = {1,3,6,8,9,10,12,18,20,34};
int i = 12;
System.out.println(binarySearch(a,i));
}
public static int binarySearch(int a[],int num) {
if(a.length==0) return -1;
int start = 0;
int end = a.length - 1;
int m = (start + end) / 2;//最开始中间那个位置
while(start <= end) {//循环条件 只要start<=end 就要接着找
if(num == a[m]) return m;//相等时返回
if(num > a[m]) { //如果要查找的值>中间那个值 那么start相应变为中间那个位置+1
start = m + 1;
}
if(num <a[m]) {
end = m+1;
}
m = (start + end) / 2;
}
return -1;//如果在数组中没有找到想要的值 那么返回-1
}
}
相关文章推荐
- 基本算法简单实现-二分法查找、合并排序、冒泡排序、插入排序、选择排序、快速排序
- 数据结构之二分法查找、快速排序思想与实现
- 二分法快速查找的递归算法
- 正确的二分法数据查找算法——百度百科里的那个算法是错误的
- 基本算法之二分法查找
- 重学数据结构——快速排序,二分法查找
- 用java实现二分法快速查找例程
- [算法][二分法查找]
- Java学习之数组1(1.数组的声明;2.元素为引用数据类型的数组;3.关于main方法里的String[] args;4.数组排序;5.数3退1 数组算法,(用数组模拟链表);6数组查找之二分法;7数组的拷贝)
- Horspool 字符串快速查找算法
- 数据结构之二分法查找、快速排序思想与实现
- (BubbleSort)冒泡排序与(BinarySearch)二分法查找算法(java)
- 实现了一个压缩算法,在数据高度压缩的前提下,还可以快速查找 key
- 区间表的快速查找算法
- 连通性问题快速查找算法
- 算法:二分法查找
- 快速查找算法
- 冒泡排序、选择排序、快速排序、二分法查找
- [php] 数据结构&算法(PHP描述) 查找&&二分法查找
- 算法--二分法查找