国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

在數組中使用二分法查找

2019-11-14 15:41:20
字體:
來源:轉載
供稿:網友
package com.db2;import java.util.Arrays;/** * 二分法查找 *  * @author denny 使用二分法查找的前提數組已經排過序 * */public class Demo4 {    public static void main(String[] args) {        int[] arr = { 3, 1, 8, 2, 9, 100, 33, 22, 11, 18, 14, 17, 15, 3 };        // 使用Arrays.sort()排序        Arrays.sort(arr);        System.out.PRintln(Arrays.toString(arr));        // 返回結果        //int index = brinarySearch(arr, 99);        int index = brinarySearch_2(arr, 11);        System.out.println("index=" + index);    }    /*     * 二分法查找一返回下標如果是-1就說明沒有     */    public static int brinarySearch(int[] arr, int key) {// 數組和要查找的數        int min = 0; // 最小的下標        int max = arr.length - 1;// 最大的下標        int mid = (min + max) / 2;// 中間的下標        while (arr[mid] != key) {            if (key > arr[mid]) { //比中間數還在                min = mid + 1;   //最小的下標=中間下標加一            } else if (key < arr[mid]) {//比中間數還小                max = mid - 1;   //最大的下標=中間下標-1            }             if(max<min){                return -1;            }            mid=(min+max)/2; //再次計算中間下標        }                return mid;    }    /*     * 二分法查找一返回下標如果是-1就說明沒有     */    public static int brinarySearch_2(int[] arr, int key) {// 數組和要查找的數        int min = 0; // 最小的下標        int max = arr.length - 1;// 最大的下標        int mid = (min + max) / 2;// 中間的下標            while(min<=max){            if(key>arr[mid]){                min=mid+1;            }else if(key<arr[mid]){                max=mid-1;            }else{                return mid;            }            mid=(min+max)/2;        }        //沒找到        return -1;        }    }

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阜康市| 安康市| 铜陵市| 万盛区| 洛阳市| 民勤县| 工布江达县| 剑阁县| 新河县| 宁化县| 凤台县| 什邡市| 静宁县| 合作市| 罗定市| 苏州市| 昭通市| 汶川县| 中方县| 商南县| 南昌市| 昆明市| 东阳市| 镇巴县| 青川县| 遵义县| 扎兰屯市| 香港| 石泉县| 福州市| 吉林省| 工布江达县| 乌兰浩特市| 张家界市| 庆元县| 确山县| 额敏县| 枞阳县| 佳木斯市| 高要市| 霸州市|