1. 程式人生 > 其它 >java--二分查詢法

java--二分查詢法

技術標籤:資料結構與演算法

1.code

package com.yl.pdfdemo.day02;

/**
 * @Author wfj
 * @Date 2021/1/22
 * @Description 二分法查詢
 * @Version 1.0
 */

public class BinarySearch {
    public static void main(String[] args) {
        /**
         * 二分查詢法
         * 前提:
         *      陣列必須有序
         *
         *      取中間值,拿目標值和中間值比較,目標值比中間值大,就往陣列的右半部分繼續找,否則就往陣列的左半部分查詢
         */
int[] arr = new int[] {-100,-30,10,20,50,190,200,500}; int dest1 = -30; int start = 0; //初始的首索引 int end = arr.length - 1; //初始的末索引 boolean flag = true; while(start <= end) { int mid = (end + start) / 2; if (dest1 == arr[mid]) { System.
out.println("目標已找到,位置為:" + mid); flag = false; break; } else if (arr[mid] > dest1) { //如果中間值比目標值要大,那麼我們應該是要往陣列的左半部分去找,所以end = mid - 1 end = mid - 1; } else { //如果中間值比目標值要小,代表著目標值在陣列的右半邊部分,所以start = mid + 1
start = mid + 1; } } if (flag) { System.out.println("目標不存在!!!"); } } }

2.結果
在這裡插入圖片描述