官术网_书友最值得收藏!

1.4.1 折半查找

為了快速地查找單詞,可以先對單詞列表排序,例如:《新華字典》和《現代漢語詞典》按拼音排序。從排好序的詞表中查找一個詞,可以采用折半查找的方法快速查詢。下面是實現折半查找的代碼。

        int binarySearch(String[] a, String key){
            int low = 0; //開始位置
            int high = a.length -1; //結束位置


            while (low <= high) {
                int mid = (low + high) >>> 1; //相當于mid = (low + high)/2
                String midVal = a[mid]; //取中間的值
                int cmp = midVal.compareTo(key); //中間值和要找的關鍵詞比較


                if (cmp < 0)
                    low = mid + 1;
                else if (cmp > 0)
                    high = mid -1;
                else
                    return mid; // 查找成功,返回找到的位置
            }
            return -(low + 1);  // 沒找到,返回負值
        }
主站蜘蛛池模板: 迁西县| 东乡县| 永春县| 浮山县| 宝应县| 扬州市| 鹤山市| 色达县| 阳新县| 当阳市| 娱乐| 申扎县| 读书| 府谷县| 荔波县| 青冈县| 三台县| 汕尾市| 晋宁县| 花莲市| 五大连池市| 原平市| 蓬莱市| 漾濞| 阿坝县| 松江区| 海盐县| 峡江县| 比如县| 北宁市| 如东县| 高雄市| 东丽区| 嘉峪关市| 仁化县| 亳州市| 太湖县| 呼玛县| 成安县| 都安| 库尔勒市|