Java中怎么实现一个查找算法
发表于:2025-01-27 作者:千家信息网编辑
千家信息网最后更新 2025年01月27日,这篇文章将为大家详细讲解有关Java中怎么实现一个查找算法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。线性查找 (linear search)pub
千家信息网最后更新 2025年01月27日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安全错误
数据库的锁怎样保障安全
NXT生产线监视服务器连不上
军师请布阵华为服务器
装备监控软件开发
上海云鑫网络技术有限公司
php自动备份数据库
北京云南众福互联网科技有限公司
中国 物联网络安全
库尔勒在线服务器价格
软件开发新的想法
网络安全设备中标公告
互联网金融是金融科技的早期业态
如何处理百万行数据库
攀枝花公安局网络安全大队
疫情过后网络安全形势
数据库集群技术背景
方舟手游服务器后台无法启动
苏州戴尔服务器配件报价
和软件开发网络安全
软件开发和运维工程师
可口的披萨服务器
已知品种数据库建设规程
数据库 as in
链接热点 网络安全密钥
金科联通网络技术有限公司
楼宇数据库如何转换成sql
850棋牌游戏软件开发公司
网络安全公益通知心得体会
2019网络安全分析
河北纵贯线网络技术公司
朱巍家庭网络安全教育美篇