/*

折半算法

思路:对于一个--有序--的数组来说,可以对折的方式,来查找给定的元素的角标值,如果没有,可以定义返回-1

折半的时候可以定义三个变量int max min和mid,在形参里定义key代表给定元素,如果key大于mid,则+1,如果小于,则—1

如果没有找到指定元素,可以定义返回-1

*/

public class Halfsearch

{

public static void main(String[]  args)

{

int[] arr = new int[]{2,4,8,10,11,24};

int index = halfSearch_2(arr,11);

System.out.println(index);

}

/*

//折半第一种算法的函数

public static int halfSearch(int[] arr,int key)

{

int min,max,mid;

min = 0;

max = arr.length-1;

mid = (min+max)/2;

while (arr[mid]!=key)

{

if (key>arr[mid])

{

min = mid+1;

}

else if (key

{

max = mid-1;

}

if (min>max)

{

return  -1;

}

mid=(min+max)/2;

}

return  mid;

}

*/

//折半第第二种算法的函数,min<=max就可以直接折半

public static int halfSearch_2(int[] arr,int key)

{

int min=0,max=arr.length-1,mid;

while (min<=max)

{

mid = (min+max) >>1;

if(key>arr[mid])

min = mid+1;

else if(key

max = mid-1;

else

return mid;

}

return -1;

}

}

java 折半_折半算法相关推荐

  1. 匈牙利算法java实现_匈牙利算法(Hungarian Algorithm)

    匈牙利算法是一种在多项式时间内求解任务分配问题的组合优化算法.换句话说就是,在可以接受的时间内去做匹配. 1. 描述问题 给定2个集合A和B,然后将AB中的元素完成一个连线.(这不就是小时候的连线题么 ...

  2. java 独木桥_趣味算法——青蛙过河(JAVA)

    青蛙过河是一个非常有趣的智力游戏,其大意如下: 一条河之间有若干个石块间隔,有两队青蛙在过河,每队有3只青蛙,这些青蛙只能向前移动,不能向后移动,且一次只能有一只青蛙向前移动.在移动过程中,青蛙可以向 ...

  3. bitmap的java原理_布隆算法的原理及JAVA实现

    Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法.通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合. Bloom Filter ...

  4. 聚类算法的java实现_聚类算法之BIRCH(Java实现)

    BIRCH(Balanced Iterative Reducing and Clustering using Hierarchies)天生就是为处理超大规模(至少要让你的内存容不下)的数据集而设计的, ...

  5. 排序算法java快速排序_快速排序算法--Java实现

    标签(空格分隔): 数据结构与算法 原理: 对于任意一个无序数组,我们随机的选一个元素作为基准元素(例如:数组中的最后一个或者第一个元素, 然后我们将数组中的剩余元素分别与基准元素进行比较,将小于或等 ...

  6. java 墨卡托投影_墨卡托投影算法应用---获取辖区某区域的精准电子围栏

    背景:某项目做区域监控,需要内置某些区域的电子围栏. 方案:利用某度接口中墨卡托投影值,进行经纬度转换,入库保存后,让前端获取. 前置数据:区域文案名清单 接口1:  查询某区域的uid http:/ ...

  7. l bfgs算法java代码_优化算法——拟牛顿法之L-BFGS算法

    一.BFGS算法 BFGS算法的校正公式: 利用Sherman-Morrison公式可对上式进行变换,得到 令 ,则得到: 二.BGFS算法存在的问题 在BFGS算法中.每次都要存储近似Hesse矩阵 ...

  8. 排序算法java源代码_排序算法汇总(java实现,附源代码)

    整理系统的时候发现了原来写的各种算法的总结,看了一下,大吃一惊,那时候的我还如此用心,具体的算法,有的已经模糊甚至忘记了,看的时候就把内容整理出来,顺便在熟悉一下,以后需要的时候就可以直接过来摘抄了. ...

  9. dbscan用 java代码_聚类算法之DBScan(Java实现)[转]

    package orisun; import java.io.File; import java.util.ArrayList; import java.util.Vector; import jav ...

最新文章

  1. We wear culture:Google 艺术与文化项目带你探秘穿在身上的文化
  2. [Android]手动触发OnClick事件
  3. django中模型类的创建
  4. wincc报表日报表实例_工作系统二次开发二Python加工原膜切割日报表数据实例
  5. Java类加载器总结
  6. Java记录 -45- List的toString方法
  7. 2021-04-13 Linux I/O模型
  8. FastDFS介绍与安装配置
  9. document.onreadystatechange()来判断页面加载完
  10. JVM调优浅谈(转)
  11. word中插入代码段
  12. 数学建模常用模型04 :灰色关联分析法
  13. 未封装的扩展程序是什么意思_网线上面的标识代表什么意思?网线的九大扩展应用...
  14. [DebugView] dbgv.sys占用 及 KdPrint输出信息无法显示
  15. Kafka从入门到精通学习笔记
  16. 微型计算机原理实验程序,微机原理实验(含程序).doc
  17. java对输入的电话号码进行匹配(1、位数为11位 2、纯数字 3、以1开头第二位必须是3、7、8中的一位)
  18. 微信小程序+UDP+wifi8266+l293d扩展板+Arduino uno遥控小车
  19. selenium版本低导致运行报错打不开浏览器问题
  20. 陌陌 Service Mesh 架构的探索与实践

热门文章

  1. 【带你重拾Redis】Redis持久化
  2. RectF Rect用法
  3. win10计算机无法睡眠怎么办,Windows10笔记本电脑无法睡眠怎么处理
  4. 用Python解密2021年最新富豪榜,马云居然连前三都没进
  5. linux查询锁定时间,Linux限制远程登陆尝试密码次数及锁定时间
  6. php unset 静态变量,php如何删除静态变量
  7. image控件显示图片_Unity之Image amp; Raw Image
  8. python可以在linux运行_在linux运行python
  9. sqlalchemy安装以及使用_电子皮带秤的安装使用条件以及对输送机的要求
  10. 前端笔记(4)css,复合选择器,标签的显示模式,行高,css背景,css三大特性