折半查找---算法
实现代码:
/**
* @author nami404
* * @date 2025/3/5 23:47
*/
public class BinarySearch {
/**
* 二叉排序算法,要求数组必须是有序的,返回查找的key值在数组中的下标,没有找到则返回-1
*/
public static int binarySearch(int[] array, int key) {
int low = 0;
int high = array.length - 1;
while (low <= high) {
int mid = low + (high - low) / 2;
if (array[mid] < key) {
low = mid + 1;
} else if (array[mid] > key) {
high = mid - 1;
} else {
return mid;
}
}
return -1;
}
public static void main(String[] args) {
int[] array = {1,1,2,3,4,5,6,7,11,12,13,14,24,31,43};
int result = binarySearch(array, 1);
System.out.println(result);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· C#高性能开发之类型系统:从 C# 7.0 到 C# 14 的类型系统演进全景
· 管理100个小程序-很难吗
· 在SqlSugar的开发框架中增加对低代码EAV模型(实体-属性-值)的WebAPI实现支持
· 如何统计不同电话号码的个数?—位图法
· 使用这个工具,基于代码仓库直接生成教程文档,感觉比我自己写的还好