zoukankan      html  css  js  c++  java
  • 顺序查找JAVA实现 设置哨兵

    /**
     * 顺序查找,设置哨兵
     * 待查找数组: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;
        }
    }
  • 相关阅读:
    Oracle 常用的单行函数
    mysql练习02
    mysql练习
    Linux命令
    JSS
    CSS
    Html标签
    需求文档
    Oracle 常用的单行函数
    RHEL7最小化安装之后(桥接模式),查看本机IP,
  • 原文地址:https://www.cnblogs.com/kangpp/p/4380275.html
Copyright © 2011-2022 走看看