【Java】陣列二分查詢元素
查詢前提:陣列元素有序
要求:查詢元素對應的索引
程式碼實現:
public class Test_erfenfa {
public static void main(String[] args) {
int[] arr = {11,22,33,44,55,66,77};
int i = getIndex(arr,33);
System.out.println(i);
}
public static int getIndex(int[] arr, int value) {
int min = 0;
int max = arr.length - 1;
int mid = (min + max) / 2;
while(arr[mid] != value) { //當中間值不等於要找的值,就開始迴圈查詢
if(arr[mid] < value) { //當中間值小於了要找的值
min = mid + 1; //最小的索引改變
}else if (arr[mid] > value){ //當中間值大於了要找的值
max = mid - 1; //最大的索引改變
}
mid = (min + max) / 2; //無論最大還是最小改變,中間索引都會隨之改變
if(min > max) { //如果最小索引大於了最大索引,就沒有查詢的可能性了
return -1; //返回-1
}
}
return mid;
}
}
相關文章
- 陣列的主元素查詢陣列
- js查詢陣列元素位置JS陣列
- 微策略面試題:在旋轉後的陣列中查詢元素(二分查詢)面試題陣列
- Java中查詢陣列多數元素的4種方法Java陣列
- Javascript刷題 》 查詢陣列元素位置JavaScript陣列
- java陣列回顧---線性查詢最大值最小值---二分查詢Java陣列
- Java陣列排序和查詢Java陣列排序
- php陣列中二分查詢是什麼PHP陣列
- 【劍指offer】二分查詢二維陣列陣列
- 查詢陣列中第K大的元素陣列
- 陣列的查詢(搜尋):線性查詢和二分法查詢陣列
- 【LeetCode-陣列】查詢大多數元素LeetCode陣列
- JS能力測評經典題--查詢陣列元素位置JS陣列
- java陣列元素的引用Java陣列
- 查詢演算法集:順序查詢、二分查詢、插值查詢、動態查詢(陣列實現、連結串列實現)演算法陣列
- 1-陣列-11-二分查詢-LeetCode704陣列LeetCode
- 二分只能用來查詢元素嗎?
- 二維陣列查詢陣列
- JavaFX教程-查詢陣列Java陣列
- JavaScript專題之學underscore在陣列中查詢指定元素JavaScript陣列
- 查詢——二分查詢
- JavaScript --二維陣列查詢一維陣列JavaScript陣列
- 有序陣列1 2 3 4 5 6 7 8 9查詢3的二分查詢序列是陣列
- 二分查詢—包括查詢第一個目標元素和最後一個目標元素
- 陣列使用find查詢用法陣列
- Selenium webdriver Java 查詢元素WebJava
- 【Java】尋找陣列中“主要元素”Java陣列
- 演算法訓練營第一天| 704 二分查詢 27 移除元素 977 有序陣列的平方演算法陣列
- 二分查詢(一)——純粹的二分查詢
- Python查詢-二分查詢Python
- 二維陣列中的查詢陣列
- MongoDB之資料查詢(陣列)MongoDB陣列
- 陣列中查詢給定值陣列
- 查詢提示;及重排陣列分析陣列
- 二分查詢
- 在靜態類中定義一個泛型方法查詢陣列元素泛型陣列
- Java中查詢列表的峰值元素Java
- java陣列如何遍歷全部的元素Java陣列