1. 程式人生 > 其它 >演算法:java實現二分查詢法

演算法:java實現二分查詢法

技術標籤:演算法

/**
 * @author dym
 * @date 2020/12/20 14:04
 */
// 如果從大型的陣列中查詢資料,可以使用二分法,也稱為折半法
// 注意 // 1.使用二分法的時候,只能針對排序好的陣列
// 2.陣列中不能用重複的資料.
public class BinarySearch {

    public static void main(String[] args) {
        //新建排好序的陣列
        int [] arr = {10,11,12,13,14,15,16,17,18,19};
        //鍵盤輸入需要查詢的數:key
        System.out.println(
"輸入你要查詢的數值: "); Scanner scanner = new Scanner(System.in); int key = scanner.nextInt(); int start = 0; int end = arr.length -1; int middle=-1 ; boolean flag = false; while (start <= end){ middle = (start+end)/2; //取兩數的中間數 if
(arr[middle] == key){ flag = true; break; //找到了key值則跳出迴圈 // 例如,我們需要中 18,但是 arr[middle]是 14 }else if (arr[middle] < key){ start = middle+1; // 我們需要中 18,但是 arr[middle]是 19 }else { end = middle-1;
} } if (flag){ System.out.println("找到資料,索引是:" + middle); }else { System.out.println("沒有找到陣列"); } } }

執行結果:
在這裡插入圖片描述