Java-数据结构与算法-二分查找法
1.二分查找法思路:不断缩小范围,直到low <= high
2.代码:
1 package Test; 2 3 import java.util.Arrays; 4 5 public class BinarySearch { 6 7 public static void main(String[] args) { 8 int [] a = {1,5,7,9,11,12,16,20}; 9 int target = 16; 10 //System.out.println(Arrays.binarySearch(a, target)); 11 System.out.println(binarySearch(a, target)); 12 } 13 14 public static int binarySearch(int [] a, int target){ 15 int low = 0; 16 int high = a.length - 1; 17 18 while (low <= high) { 19 int mid = (low + high) >>> 1; 20 int midVal = a[mid]; 21 22 if (midVal < target) 23 low = mid + 1; 24 else if (midVal > target) 25 high = mid - 1; 26 else 27 return mid; // key found 28 } 29 return -(low + 1); // key not found. 30 } 31 }
3.结果:6
转载于:https://www.cnblogs.com/shamgod/p/4604376.html
Java-数据结构与算法-二分查找法相关推荐
- java 二分查找_计算机入门必备算法——二分查找法
1.引言 笔者对于计算机的研究一直停滞不前,近期想对一些算法进行复习和进一步的研究,每天都会更新一个新的算法,算法有难有易,层层递进.不希望能学的有多么高深,只希望在一些最基本的算法上有编码的思路,或 ...
- Java数据结构与算法——线性查找 二分查找 插值查找
1.线性查找 有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此名称[顺序查找] 要求: 如果找到了,就提示找到,并给出下标值. package com.szh. ...
- Java数据结构与算法 线性查找和二分查找
查找 查找(searching)是在一组数据项中找到指定的目标元素(target element)或者判定组内不存在目标的过程.要查找的数据项组有事成为查找池(search pool). 在此讨论两种 ...
- 折半查找算法[二分查找法]算法的实现和解决整数溢出问题~
算法实现的要求: 折半查找法又称为二分查找法,这种方法对待查找的列表有两个要求: 1:必须采用顺序存储结构 2:必须按关键字大小有序排列 算法思想: 将表中间位置记录的关键字与查找关键字进行比较,如果 ...
- 数据结构与算法 | 二分查找
假如我们在图书馆中整理书记,书按照序号有序排序,序号不连续,当我们需要从书堆中找到特定序号的书时,如果一本一本查找的话,我们可能需要查找N次.但如果我们先找到中间的书,将书分成两堆,与待查书对比,待查 ...
- 小饶学编程之JAVA SE第一部分——二分查找法
二分查找法 一.算法描述 二.算法原理 三.算法实现 四.总结 一.算法描述 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结 ...
- NTC测温中 经典温度查表算法--二分查找法
说明: 二分查找法的优点:查找速度快 1024个长度的表最长只需10次查表就能得出结果 在用NTC测试温度的方案中,NTC的温度表的长度一般是100-200 有些达到400-500的长度 在这种情况下 ...
- java小练习题---冒泡排序+二分查找法
题目: 冒泡排序+二分查找法 代码: package scan; import java.util.Scanner; //import java.util.Scanner; public class ...
- 每日一则----算法----二分查找法
php实现二分查找法 二分查找法称折半查找,需要数组是一个有序的数组 假设我们的数组是一个递增的数组,首先我们需要找到数组的中间位置. 要知道中间位置就需要知道起始位置和结束位置,然后取出中间位置的值 ...
最新文章
- 动态路由选择协议简介
- 椭圆曲线加密算法(ECC)原理和C++实现源码(摘录)
- 【网址收藏】WSL安装docker(不折腾版)
- 原!操作 excel 03/07
- mysql 代码怎么优化_MySQL 性能优化的简略办法
- 自定义jackson序列化_Jackson中的自定义反序列化程序和验证
- SAP License:未分配差异的另类查询办法
- codeforces332B - Maximum Absurdity 线段数 or dp
- win7 桌面背景保存位置,告诉你源文件删除后如何找回
- 网站爬虫Python
- node在Fedora 22系统下开发环境搭建
- 阳明心学在敏捷开发中的应用
- 巧用京东物流分享链接批量查询多个京东快递的物流信息
- 大学计算机应用基础第二版习题答案,《大学计算机应用基础》各章习题参考答案...
- POI之Excel字体样式
- 人体红外传感器+蜂鸣器实现人体红外报警
- 小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!
- 一条宽带多人共享违法?
- 录制电脑桌面的gif图工具 GifCam
- 2021美国大学生数学建模竞赛F题翻译
热门文章
- android 应用专属目录,获取Android应用专属缓存存储目录的实例
- vue 同步加载_2019 前端面试题汇总(主要为 Vue)
- qt 复制字符串_Qt字符串处理 QString用法总结(一)
- canvas笔记-文本(fillText)旋转(rotate)
- C/C++ OpenCV图像的载入,显示,输出
- 计算机拼图形 比创意教案,拼图形比创意教学设计.doc
- Django之Mode的外键自关联和引用未定义的Model
- nio和bio的原理_Java的BIO,NIO和AIO的区别于演进
- python多线程爬虫框架_普通爬虫vs多线程爬虫vs框架爬虫,Python爬对比
- 基本汇编语言学习结构