Java中怎么实现一个查找算法
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章将为大家详细讲解有关Java中怎么实现一个查找算法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。线性查找 (linear search)pub
千家信息网最后更新 2025年12月02日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安全错误
数据库的锁怎样保障安全
网络安全工作情况的汇报
在软件开发项目中强调个体
盐城智能软件开发管理
免费smtp服务器
上海朋利网络技术公司地址
怎么构建基因序列的数据库
酸腐蚀量 碱腐蚀量 数据库
软件开发类 税点
威海市蓝天网络技术
AC格林NBA数据库
乐居(中国)网络技术有限公司
网络安全工作专题会议讲话
天水妇女网络安全宣传
厦门wms软件开发
服务器无法引导开机
mysql查询归档数据库
我的世界像素文明模拟服务器
计算机网络安全介绍视频
西安翻译学院网络技术专业好吗
辽宁网络安全应急中心招聘
oa 服务器
sql数据库插入表
软件开发利润多少
中美联合网络安全
软件开发毕业设计价格
福山区管理系统软件开发公司
网络安全第三方监测
华为软件开发云怎么用
原神服务器爆满要排队怎么办
服务器安全狗最新版