二分查詢演算法 java

2021-07-09 23:52:25 字數 763 閱讀 6556

題目:

在乙個有序陣列中查詢給定值得下標

其中有兩個前提,一是順序儲存結構,二是儲存結構已經是排好序的。

給定前提:

int array = new

int;

int num = 50;

intleft = 0, right = array.length - 1;

先看看直接用迴圈的方式:

int

index = -1;

int middle;

while (left <= right) else

if (num < array[middle]) else

}// index就是下標,如果為-1表示未找到

system.out.println(index);

再看看遞迴的方式:

private static int indexof(int array, int num, int

left, int

right)

int middle = (left + right) / 2;

if (array[middle] == num) else

if (num < array[middle]) else

return indexof(array, num, left, right);

}

參考:

Java演算法 二分查詢

查詢 基本查詢 陣列元素無序 從頭到尾 二分查詢 折半查詢 陣列元素有序 分析 a 定義最大索引,最小索引 b 計算出中間索引 c 拿中間索引的值和要查詢的值進行比較 相等 就直接返回當前的中間索引 不相等 大 左邊找 小 右邊找 d 重新計算中間索引 大 左邊找 max mid 1 小 右邊找 m...

java 二分查詢演算法

二分查詢又稱折半查詢,它是一種效率較高的查詢方法。折半查詢的演算法思想是將數列按有序化 遞增或遞減 排列,查詢過程中採用跳躍式方式查詢,即先以有序數列的中點位置為比較物件,如果要找的元素值小 於該中點元素,則將待查序列縮小為左半部分,否則為右半部分。通過一次比較,將查詢區間縮小一半。折半查詢是一種高...

java 二分查詢演算法

程式設計之美在於演算法之美,先來看看二分查詢的演算法 隱藏條件 二分查詢必須是有序的,從小到大,或從大到小的排序才能進行二分查詢,下面來看看 package com.cn.daming public class mainactivity 排序是從小到大 int aints2 new int 排序是從...