【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;
}
}
相關文章
- 陣列的主元素查詢陣列
- Java中查詢陣列多數元素的4種方法Java陣列
- 【LeetCode-陣列】查詢大多數元素LeetCode陣列
- 查詢陣列中第K大的元素陣列
- php陣列中二分查詢是什麼PHP陣列
- 陣列的查詢(搜尋):線性查詢和二分法查詢陣列
- 1-陣列-11-二分查詢-LeetCode704陣列LeetCode
- JS能力測評經典題--查詢陣列元素位置JS陣列
- java陣列元素的引用Java陣列
- JavaScript專題之學underscore在陣列中查詢指定元素JavaScript陣列
- 二分只能用來查詢元素嗎?
- 二維陣列查詢陣列
- 查詢——二分查詢
- 二分查詢—包括查詢第一個目標元素和最後一個目標元素
- 演算法訓練營第一天| 704 二分查詢 27 移除元素 977 有序陣列的平方演算法陣列
- 【Java】尋找陣列中“主要元素”Java陣列
- 二維陣列中的查詢陣列
- 陣列中查詢給定值陣列
- Java中查詢列表的峰值元素Java
- 二分查詢(一)——純粹的二分查詢
- java陣列如何遍歷全部的元素Java陣列
- Excel查詢兩列資料相同的元素Excel
- 二分查詢
- 633. 平方數之和 ( 列舉 + 二分查詢 )
- 陣列元素逆序陣列
- 程式碼隨想錄演算法訓練營第一天 | 陣列part01:陣列理論基礎,704. 二分查詢,27. 移除元素 977.有序陣列的平方演算法陣列
- 程式碼隨想錄Day1 | LeetCode 704. 二分查詢、LeetCode 27. 移除元素、LeetCode 977. 有序陣列的平方LeetCode陣列
- 在排序陣列中查詢元素的第一個和最後一個位置排序陣列
- 【JZOF】二維陣列中的查詢陣列
- MYSQL A、B表陣列關聯查詢MySql陣列
- MongoDB(12)- 查詢嵌入文件的陣列MongoDB陣列
- 查詢演算法__二分查詢演算法
- Java實現二分查詢演算法Java演算法
- Java擷取指定區間內的陣列元素並存入新陣列Java陣列
- java陣列中重複元素的去重Java陣列
- 面試:Java 實現查詢旋轉陣列的最小數字面試Java陣列
- 二分查詢法
- PHP二分查詢PHP