一区二区三区电影_国产伦精品一区二区三区视频免费_亚洲欧美国产精品va在线观看_国产精品一二三四

聯(lián)系我們 - 廣告服務(wù) - 聯(lián)系電話:
您的當(dāng)前位置: > 關(guān)注 > > 正文

世界觀焦點(diǎn):java代碼實(shí)現(xiàn)二分法查找 二分法的實(shí)現(xiàn)

來(lái)源:CSDN 時(shí)間:2023-02-08 15:03:05


(資料圖)

二分法查找的前提

該線性數(shù)組內(nèi)的數(shù)字是有序的,如{1,2,3,4,5,6,7,8,9}等

二分法的實(shí)現(xiàn)

(1)首先,從數(shù)組的中間元素開(kāi)始搜索,如果該元素正好是目標(biāo)元素,則搜索過(guò)程結(jié)束,否則執(zhí)行下一步。

(2)如果目標(biāo)元素大于/小于中間元素,則在數(shù)組大于/小于中間元素的那一半?yún)^(qū)域查找,然后重復(fù)步驟(1)的操作。

package com.liao;/** * 二分法查找實(shí)現(xiàn) */public class BinarySearch {    public static void main(String[] args) {        //1,目標(biāo)數(shù)組        int[] arr = new int[]{1,2,3,4,5,6,7,8,9};        //2,要查找的目標(biāo)元素        int target = 8;        //3,開(kāi)始查找        int begin = 0;//用來(lái)記錄開(kāi)始位置        int end = arr.length-1;//用來(lái)記錄結(jié)束位置        int mid = (begin+end)/2;//記錄中間位置        int index = -1;//如果值為-1表示該數(shù)組沒(méi)有該元素,如果有就把對(duì)應(yīng)的下標(biāo)值賦予它        while (true){            //1,判斷中間的這個(gè)元素是不是要查找的元素            if(arr[mid]==target){                index = mid;                break;            }else {//2,中間元素不是目標(biāo)元素                //判斷中間元素與目標(biāo)元素的大小                if(arr[mid]>target){//中間大于目標(biāo)元素                    end=mid-1;//把要結(jié)束的位置調(diào)到中間元素的前一個(gè),縮小范圍                }else {                    //中間元素大于小于目標(biāo)元素,把要開(kāi)始的位置調(diào)到中間元素的后一個(gè),縮小范圍                    begin=mid+1;                }                //3,重新計(jì)算中間位置,就這樣反復(fù)計(jì)算,直到mid=target成立,跳出循環(huán)                mid = (begin+end)/2;            }        }        System.out.println("index = " + index);    }}

責(zé)任編輯:

標(biāo)簽:

相關(guān)推薦:

精彩放送:

新聞聚焦
Top 主站蜘蛛池模板: 惠来县| 康平县| 蚌埠市| 宁化县| 余姚市| 台山市| 筠连县| 渭南市| 罗江县| 和田县| 元阳县| 西宁市| 泾川县| 绥中县| 华宁县| 蒙阴县| 左权县| 江安县| 来宾市| 马龙县| 诸城市| 亳州市| 重庆市| 新丰县| 桓仁| 文水县| 湘西| 当雄县| 平乐县| 叙永县| 九龙坡区| 稻城县| 安泽县| 和平县| 东阳市| 石门县| 麟游县| 澜沧| 容城县| 宁夏| 紫阳县|