<form id="dlljd"></form>
        <address id="dlljd"><address id="dlljd"><listing id="dlljd"></listing></address></address>

        <em id="dlljd"><form id="dlljd"></form></em>

          <address id="dlljd"></address>
            <noframes id="dlljd">

              聯系我們 - 廣告服務 - 聯系電話:
              您的當前位置: > 關注 > > 正文

              世界觀焦點:java代碼實現二分法查找 二分法的實現

              來源:CSDN 時間:2023-02-08 15:03:05


              (資料圖)

              二分法查找的前提

              該線性數組內的數字是有序的,如{1,2,3,4,5,6,7,8,9}等

              二分法的實現

              (1)首先,從數組的中間元素開始搜索,如果該元素正好是目標元素,則搜索過程結束,否則執行下一步。

              (2)如果目標元素大于/小于中間元素,則在數組大于/小于中間元素的那一半區域查找,然后重復步驟(1)的操作。

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

              責任編輯:

              標簽:

              相關推薦:

              精彩放送:

              新聞聚焦
              Top 中文字幕在线观看亚洲日韩