黑马程序员_二分查找
来源:互联网 发布:比特币行情软件 编辑:程序博客网 时间:2024/04/30 06:42
------------------android培训 java培训----------------期待与您交流
算法思想:
当数据量很大适宜采用该方法。采用二分法查找时,数据需是排好序的。主要思想是:(设查找的数组区间为array[low, high])(1)确定该期间的中间位置K(2)将查找的值T与array[k]比较。若相等,查找成功返回此位置;否则确定新的查找区域,继续二分查找。区域确定如下:a.array[k]>T 由数组的有序性可知array[k,k+1,……,high]>T;故新的区间为array[low,……,K-1]b.array[k]<T 类似上面查找区间为array[k+1,……,high]。每一次查找与中间值比较,可以确定是否查找成功,不成功当前查找区间缩小一半。递归找,即可,时间复杂度:O(log2n)。
默认array已排序
具体代码如下:
public static int binarySearch(int[] array, int value)
{
int low = 0;
int high = array.length - 1;
int middle;
while(low <= high)
{
middle = (low + high) / 2;
for(int i = 0; i < array.length; i++)
{
System.out.print(array[i]);
if(i == middle)
{
System.out.print("#");
}
System.out.print(" ");
}
System.out.println();
if(array[middle] == value)
{
return middle;
}
if(value < array[middle])
{
high = middle - 1;
}
if(value > array[middle])
{
low = middle + 1;
}
}
return -1;
}
- 黑马程序员_二分查找
- 黑马程序员_二分查找法
- 查找_二分查找
- 黑马程序员_JAVA中的二分查找(课堂笔记)
- 黑马程序员——Java之二分查找算法
- 黑马程序员——Java基础--冒泡、选择、二分查找
- 20170927_二分查找
- 查找算法_二分查找
- 黑马程序员_数组及其排序查找操作
- 黑马程序员_数组的排序,求最值和查找
- 黑马程序员_数组遍历、查找知识点、常用方法
- 黑马程序员_数组、冒泡、选择、插入排序法,查找。
- 黑马程序员——Java基础查找算法:顺序查找和二分查找
- 01_查找算法_顺序查找_二分查找
- 算法导论_二分查找
- 黑马程序员_枚举
- 黑马程序员_多线程
- 黑马程序员_反射
- 入驻博客,让自己更优秀。
- PHP中的SQlite数据库应用介绍 php sqlite数据库
- 探索Scala(6)-- Tuples
- 为什么opencv的canny函数检测边缘的效果和matlab的不同
- 判断textarea是否为空
- 黑马程序员_二分查找
- PHP获取一个类中定义的所有属性
- 八大排序算法
- 怎样扩展PHP的其它功能(windows环境下)
- java的poi技术读取和导入Excel
- 元数据管理系统的研究与实现
- Mac 10.10中Java JDK不同版本安装配
- 数字图像处理博客文章整理
- google play 相关注意事项