binary search(二分法):

代码:

import java.util.Arrays;/*** 二分法查找元素*/
public class BinarySearch {public static void main(String[] args) {int[] arr = {30,20,50,10,80,9,7,12,100,40,8};int searchWord = 20;//要查找的值System.out.println(searchWord+"索引位置:"+binarySearch(arr,searchWord));}/**** @param array 目标数组* @param value 所要查找的值* @return 如果找到,则返回这个值在数组中的索引,如果未找到,则返回-1;*/public static int binarySearch(int[] array,int value){//二分法查找的数组,戏必须先排序Arrays.sort(array);System.out.println(Arrays.toString(array));int low = 0;int high = array.length-1;while(low<=high){int middle = (low+high)/2;if (value==array[middle]){return middle;}if (value>array[middle]){low = middle+1;}if (value<array[middle]){high = middle-1;}}return -1;//未找到返回-1}
}

执行结果:

binary search(二分法)相关推荐

  1. c++Binary search二分法检索(折半检索)的实现算法(附完整源码)

    C++Binary search二分法检索的实现算法 C++Binary search二分法检索(折半检索)的实现算法完整源码(定义,实现,main函数测试) C++Binary search二分法检 ...

  2. Binary Search二分法搜索C++程序

    二分法基本上学计算机的都听过,但是有人不知道的就是其实二分法是减治法的思想. 所谓减治法和分治法有一个主要差别就是减治法是减去一般,就是分治之后只需要解决原问题的一半就可以了得到全局问题的解了.所以速 ...

  3. C语言实现二分法检索binary search(附完整源码)

    实现二分法检索binary search 方法一 方法二 实现二分法检索binary search的完整源码(定义,实现,main函数测试) 方法一 int binarysearch1(const i ...

  4. C语言改造二分法(Modified Binary Search)算法(附完整源码)

    改造二分Modified Binary Search算法 改造二分(Modified Binary Search)算法的完整源码(定义,实现,main函数测试) 改造二分(Modified Binar ...

  5. Leetcode中几道二分查找(Binary Search)的算法题总结

    二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列.二分查找法的时间复杂度是对数级别的,O(lo ...

  6. 笔试算法题(58):二分查找树性能分析(Binary Search Tree Performance Analysis)

    议题:二分查找树性能分析(Binary Search Tree Performance Analysis) 分析: 二叉搜索树(Binary Search Tree,BST)是一颗典型的二叉树,同时任 ...

  7. 【ACM】二叉搜索树(Binary Search Tree /BS Tree) 小结

    动态管理集合的数据结构--二叉搜索树 搜索树是一种可以进行插入,搜索,删除等操作的数据结构,可以用字典或者优先队列. 二叉排序树又称为二叉查找树,他或者为空树,或者是满足如下性质的二叉树. (1)若它 ...

  8. 二叉搜索树(binary search tree)的建立、删除、查找

    由于输入的数据顺序不同,建立的bst会不一样.最坏的情况就是一个链,所以我们引入了平衡二叉树的概念.这里我们先来看binary search tree.(我随笔里面有一些相关知识) 建立(也就是插入) ...

  9. 查找二叉树中出现次数最多的数 Find Mode in Binary Search Tree

    为什么80%的码农都做不了架构师?>>>    问题: Given a binary search tree (BST) with duplicates, find all the  ...

最新文章

  1. R使用交叉验证(cross validation)进行机器学习模型性能评估
  2. 【转】IOS的各种后台情况的实现
  3. flash与字符串:数组转换为字符串
  4. java split 逗号_java截取之空字符丢失
  5. python sin(x)/x 图像
  6. tableau必知必会之运用本福德定律(Benford‘s law)验证数据真实性
  7. redis数据类型为key的常用命令
  8. 漫谈数据挖掘从入门到进阶
  9. python调用c++的库传递二级指针
  10. Linux的用户和组群管理
  11. 编码浅析 ASCII EASCII GBK系列 Uincode UTF-8/16/32
  12. JS、H5调用手机相册摄像头以及文件夹
  13. DVD to MP4视频格式转换器v3.1.0 中文版
  14. 试图通俗地讲一下庞加莱猜想是怎么回事
  15. **time_limited.sof文件
  16. 十一新疆之旅中邂逅的一首诗《黄河,母亲之河》
  17. 个人网站建设记录 及Markdown使用实践
  18. Win7下使用wubi.exe安装Ubuntu系统
  19. 联想笔记本电脑开机无法修复计算机,联想电脑Win10更新后提示“自动修复”无法进入系统问题蓝屏解决方案...
  20. SPA项目开发之登录注册

热门文章

  1. android底部弹出显示不全,Android 解决 NestedScrollView 底部内容被遮挡显示不全
  2. android surfaceview camera,android – 如何在SurfaceView上显示相机预览?
  3. oracle+行换列,Oracle的数据表中行转列与列转行的操作实例讲解
  4. mysql中if在oracle怎么用_mysql和oracle的mybatis操作
  5. Win11有黑色边框怎么办 Win11有黑色边框的解决方法
  6. Win11系统如何设置黑暗模式
  7. C/C++如何快速区分指针数组|数组指针|函数指针|指针函数
  8. JS中的prototype、__proto__与constructor,原型和原型链
  9. java对象的序列化和反序列化详细解释
  10. linux怎么查看sklearn版本,Sklearn——Sklearn的介绍与安装