zoukankan      html  css  js  c++  java
  • 折半查找

    // 折半查找
        public static final int FIND_OK = 1;
        public static final int FIND_FAIL = -1;
    
        public static int binarySearch(int[] array, int keyValue) {
    
            if (array == null || array.length == 0) {
                returnFIND_FAIL ;
           }
         int posLow = 0;
            int posHei = array.length - 1;
            while (posLow <= posHei) {
                if (array[posLow] == keyValue || array[posHei] == keyValue) {
                    return FIND_OK;
                }
                int middlePos = posLow + ((posHei - posLow) / 2);
                if (array[middlePos] == keyValue) {
                    return FIND_OK;
                } else {
                    if (array[middlePos] < keyValue) {
                        posLow = middlePos + 1;
                    } else {
                        posHei = middlePos - 1;
                    }
                }
            }
            return FIND_FAIL;
        }

    虽然简单但有几点注意:

    1.方法要做的事,第一任务是判断参数有效性。

    2.考虑是否溢出。

    3.可读性变量命名,返回值设置。

    // 折半查找
        public static RESULT binarySearch(int[] array, int keyValue) {
    
            if (array == null || array.length == 0) {
                return RESULT.ERROR_PARAM;
            }
            int posLow = 0;
            int posHei = array.length - 1;
            while (posLow <= posHei) {
                if (array[posLow] == keyValue || array[posHei] == keyValue) {
                    return RESULT.FIND_OK;
                }
                int middlePos = posLow + ((posHei - posLow) / 2);
                if (array[middlePos] == keyValue) {
                    return RESULT.FIND_OK;
                } else {
                    if (array[middlePos] < keyValue) {
                        posLow = middlePos + 1;
                    } else {
                        posHei = middlePos - 1;
                    }
                }
            }
            return RESULT.FIND_FIAL;
        }

      enum RESULT {
        FIND_OK, FIND_FIAL, ERROR_PARAM
      }

     
  • 相关阅读:
    TypeScript--变量
    TypeScript--Hello
    前端跨域的方式
    内存泄漏与垃圾回收机制
    前端拷贝
    React生命周期16版本
    Redux三大原则
    IE6常见CSS解析Bug及hack
    Redux的应用
    vue-router-基础
  • 原文地址:https://www.cnblogs.com/mamamia/p/7985790.html
Copyright © 2011-2022 走看看