博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
顺序查找JAVA实现 设置哨兵
阅读量:6693 次
发布时间:2019-06-25

本文共 1076 字,大约阅读时间需要 3 分钟。

/** * 顺序查找,设置哨兵 * 待查找数组:a[n] * 待查找元素:key *  * 方法: * b[n+1],其中,b[0]存放key,b[1]至b[n]存放a[0]至a[n-1]的元素 * 将b[n]从后向前扫描,如果查找成功,返回元素在数组b中的下标,从1开始;如果查找失败,返回0 *  * 设置哨兵的好处:避免了每次循环后都要检查数组下标是否越界 * @author kpp * */public class SequenSearch {    public static void main(String[] args) {        // TODO Auto-generated method stub        int data[] = {38,65,97,176,213,227,49,78,34,12,164,11,18,1};        int key = 2;        int index = search(data,key);        if(index == 0){            System.out.println("查找失败");        }else{            index = index - 1;            System.out.println("查找成功,key在数组的第"+index+"个位置(从0开始)");        }            }    /**     *      * @param a    待查找数组     * @param key  待查找元素     * @return     如果查找成功,返回元素在数组b中的下标,从1开始;如果查找失败,返回0     */    private static int search(int a[],int key){        int len = a.length;        int b[] = new int[len+1];        b[0] = key;        System.arraycopy(a, 0, b, 1, len);                int i = len;        while(key != b[i]){            i--;        }        return i;    }}

 

转载于:https://www.cnblogs.com/kangpp/p/4380275.html

你可能感兴趣的文章
初级网络运维工程师比赛题目
查看>>
跨交换机实现vlan实验报告
查看>>
jquery easyui滚动条部分设置介绍
查看>>
cannot find -lxxx问题
查看>>
预防云端开源项目打包 Redis Labs再更改模块
查看>>
超惊人!去年发生的身分外泄安全事件是2017的4倍
查看>>
oracle sqlplus免安装的配置instantclient-basiclite
查看>>
Java开发GUI之选择列表
查看>>
一、分布式商城架构逻辑图
查看>>
机器人是如何完成避障的?机器人避障解决方案解读
查看>>
通过错误堆栈信息和源码分析错误来源
查看>>
C和C++ 读写文件速度问题
查看>>
layer.mobile 弹出框插件(2.0版)
查看>>
IDC服务品质协议范本留存
查看>>
在 overlay 中运行容器 - 每天5分钟玩转 Docker 容器技术(51)
查看>>
前端MVC框架 EmberJS总结
查看>>
LVS
查看>>
搭建高可用mongodb集群(三)—— 深入副本集内部机制
查看>>
C#基础 条件语句、选择语句和循环语句
查看>>
15款经典图表软件推荐
查看>>