Java中怎么实现一个查找算法
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章将为大家详细讲解有关Java中怎么实现一个查找算法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。线性查找 (linear search)pub
千家信息网最后更新 2026年11月03日Java中怎么实现一个查找算法
这篇文章将为大家详细讲解有关Java中怎么实现一个查找算法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
线性查找 (linear search)
public class LinearSearchDemo { public static void main(String[] args) { int[] data = {2, 1, 4, 6, 12, 7}; int target = 12; int searchIndex = search(data, target); if (searchIndex != -1) { System.out.println("found at: " + searchIndex); }else { System.out.println("not found"); } } /* *@param data 待查找的数组 *@param target 待查找的值 *@return int 目标值在数组中的索引,如果没找到返回-1 */ public static int search(int[] data, int target) { int length = data.length; //从头遍历数组中的各个值,如果找到目标值就返回其索引 for (int i = 0; i < length; i++) { if (data[i] == target) { return i; } } //代码能走到这一步就说明上面的循环遍历结束了也没找到目标值 //即目标值不存在于数组中 return -1; }}二分查找( binary search)
二分查找的关键点其实是数据顺序的有序,数据顺序不有序的话,用不了二分查找的
//二分查找:在有序数组中查找某一特定元素的搜索算法public class BinarySearch { public static void main(String[] args) { int[] data = {1, 5, 6, 12, 15, 19, 23, 26, 30, 33, 37, 42, 53, 60}; int target = 19; int index = binarySearch3(data, 0, data.length - 1, target); if (index > -1) { System.out.println("found :" + index); }else { System.out.println("not found"); } } /** * 递归方法实现二分查找 * @param data 已排序数组(这里假设是从小到大排序) * @param from 起始位置 * @param to 终止位置 * @param target 要查找的值 * @return 要查找的值在数组中的位置,如果没找到则返回-1 */ private static int binarySearch2(int[] data, int from, int to, int target) { if (from <= to) { int mid = from + (to - from) / 2;//中间位置,为了防止溢出使用这种方式求中间位置 if (data[mid] < target) {//中间的值比目标值小,则在左半边继续查找 return binarySearch2(data, mid + 1, to, target); }else if(data[mid] > target){//中间的值比目标值大,则在右半边继续查找 return binarySearch2(data, from, mid - 1, target); }else {//找到了,把找到的情况放在最后是因为多数情况下中间值不是大于就是小于,这样做可以节省操作 return mid; } } return -1; } /** * 非递归方法实现二分查找 * @param data 已排序数组(这里假设是从小到大排序) * @param from 起始位置 * @param to 终止位置 * @param target 要查找的值 * @return 要查找的值在数组中的位置,如果没找到则返回-1 */ private static int binarySearch3(int[] data, int from, int to, int target) { while(from <= to) { int mid = from + (to - from) / 2; if (data[mid] < target) { from = mid + 1; }else if(data[mid] > target) { to = mid - 1; }else {//找到了,把找到的情况放在最后是因为多数情况下中间值不是大于就是小于,这样做可以节省操作 return mid; } } return -1; }}关于Java中怎么实现一个查找算法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
数组
位置
情况
目标
目标值
排序
算法
有序
从小到大
从小
内容
就是
数据
文章
方法
更多
知识
篇文章
索引
顺序
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技名片
互联网科技网
互联网和科技创新
麻工互联网科技
合肥互联网科技公司
万易互联网科技
互联网科技公司电话
科技赋能互联网健康
互联网汽车科技小镇
现代科技和互联网有关系吗
科技互联网的估值
互联网和黑科技的看法
苏州五指互联网络科技有限
哈尔滨屹滨互联网科技有限公司
如何创新互联网科技
工业互联网等科技实现智能化赋能
无锡工业互联网科技有限公司
上海互联网科技公司ppt
广西泛欧互联网科技有限公司
陕西彩京云互联网科技有限公司
互联网科技革命
卓越科技(互联网 )
亿账通互联网科技
互联网高科技股票
顺网科技2021年互联网排名
互联网公司会议桌创意科技软装饰
中国互联网公司排名锤子科技
萌小萌互联网科技河南有限公司
艺电能源互联网科技有限公司招聘
数字互联网科技有限公司