二分查找(BinarySearch)
来源:互联网 发布:点o是什么文件 linux 编辑:程序博客网 时间:2024/06/14 10:01
1、二分查找
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。
2、算法的要求
(1)必须采用顺序存储结构;(2)必须按关键字大小有序排列
3、时间复杂度
该算法的时间复杂度就是for、while等包含起来的基本运算单元的循环次数,即O(logn)
4、Java代码
public class BinarySearch { public static void main(String[] args) { int[] arr = new int[] {1, 3, 5, 7, 8, 9}; System.out.print("目标元素的索引为:"); System.out.println(binarySearch(arr, 5)); } public static int binarySearch(int arr[],int goal){ int high = arr.length-1; int low = 0; while (low <= high) { int middle=(low+high)/2; //从数组中间进行折半查找 if (arr[middle] == goal) { return middle; } else if (arr[middle] > goal) { high = middle-1; } else { low = middle+1; } } return -1; //如果待查元素不存在,则返回-1 } }
2 0
- BinarySearch(二分查找)
- BinarySearch(二分查找)
- 二分查找(BinarySearch)
- BinarySearch(二分查找,折半查找)
- BinarySearch 二分查找
- 二分查找。BinarySearch
- 二分查找BinarySearch
- BinarySearch二分查找算法
- 二分查找-BinarySearch
- binarySearch二分查找总结
- Binarysearch 二分查找
- 二分查找 - BinarySearch
- 二分查找法binarySearch
- 二分查找binarySearch
- 数据结构算法之--折半查找(二分查找BinarySearch)
- JavaShowAlgorithm-二分查找BinarySearch算法
- 数据结构基础(10)------------二分查找算法(BinarySearch)
- BinarySearch(二分搜索)
- oracle数据库启动报错ORA-12560问题解决方法
- MFC大神之路
- Vue.js结合vue-router和webpack编写单页路由项目
- R语言技巧:对读取常用的集中格式的介绍
- Java虚拟机工具之堆栈跟踪工具jstack检测对象wait方法
- 二分查找(BinarySearch)
- P_CalcPlan
- C# 将byte 保存为文件 转为文件
- matlab 大津算法 ostu 程序
- 输入组数未知的数据,c和c++的不一样。
- 谁杀死了MySQL?
- Retrofit简要分析
- 升级到Xcode8遇到的问题
- python的矩阵扩充