二分查找法demo
2024-08-23 19:42:03
正文
中午闲着有点时间,做个demo睡觉去,这个例子网上应该都有,自己只是敲一下给自己做个记录。
public static void main(String[] args) {
int[] whitelist = new int[]{12,13,34,56,78,88,99,100};
Arrays.sort(whitelist);
Scanner sc = new Scanner(System.in);
boolean go=true;
while(true)
{
System.out.println("请输入要查找的数");
int nextInt = sc.nextInt();
sc.nextLine();
int result = rank(nextInt,whitelist);
if(result!=-1)
{
System.out.println("找到的数字位置为:"+result);
go=false;
}
else
{
System.out.println("没有找到输入的数字位置");
}
}
}
public static int rank(int key, int[] a) {
// 数组必须是有序的
int lo = 0;
int hi = a.length - 1;
while (lo <= hi) {
// 被查找的键要么不存在,要么必然存在于a[lo,hi]之间
int mid = lo + (hi - lo) / 2;
if (key < a[mid]) {
hi = mid - 1;
} else if (key > a[mid]) {
lo = mid + 1;
} else {
return mid;
}
}
return -1;
}
最新文章
- silverlight中 Storyboard(动画)的使用,实现球的上下循环移动,左右移动,及旋转功能
- WORD自定义宏
- HDU 4342History repeat itself 数学
- RPC介绍
- 基于jQuery查找dom的多种方式性能问题
- 把centos 网卡接口eth2改成eth0
- oracle解析xml完成版
- POJ 3177 Redundant Paths - from lanshui_Yang
- 将 Eclipse 的配色改为黑底白字
- 使用CSS3动画实现绚丽的照片墙效果
- 正则表达式——Java程序员懂你
- R语言︱R社区的简单解析(CRAN、CRAN Task View)
- 云计算 IaaS,SaaS,PaaS的区别?一个通俗易懂的吃货文章
- Extensions in UWP Community Toolkit - WebViewExtensions
- 一步一步理解 python web 框架,才不会从入门到放弃
- Springboot使用alibaba的fastJson,@JSONField不起作用的问题
- 前端开发JS白板编程题目若干
- BZOJ.2655.calc(DP/容斥 拉格朗日插值)
- node.js中express框架的基本使用
- git批量删除文件和批量提交
热门文章
- 关于自己配置有关webpack.config.js和vue项目搭建相关步骤
- .net core 基于AspNetCore.Identity+Identityserver4用户的权限管理
- Rocket - tilelink - RAMModel
- js 识别二维码
- Java实现 蓝桥杯VIP 算法训练 统计单词个数
- jmeter 性能测试入门手册分享
- POJ - 2184 Cow Exhibition 题解
- AntD框架的upload组件上传图片时使用customRequest方法自定义上传行为
- jQuery实现打飞机游戏
- node实现文件属性批量修改(时间属性)