陣列的查詢(搜尋):線性查詢和二分法查詢
package cn.com.ArrayTest;
import java.util.MissingFormatArgumentException;
/**
* @author LENOVO
* @date 2020/11/25 14:30
* @description 陣列的查詢(搜尋):線性查詢,二分查詢
* 二分查詢的查詢更加快一些,相比較於線性查詢,但是前提是二分法必須要是有序的陣列
*/
public class ArrayTest2 {
public static void main(String[] args) {
String[] arr = new String[]{"JJ", "DD", "MM", "BB", "GG", "AA"};
//遍歷
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "\t");
}
System.out.println(); //換行
//線性查詢:
String dest = "BB"; // 查詢arr陣列的BB
//這裡定義一個布林型別的 true,如果沒有定義,下面直接“很遺憾···”的時候,無論找到或者沒找到都要輸出這句話
boolean isFlag = true;
//遍歷過程找一下有沒有BB
for (int i = 0; i < arr.length; i++) {
//這裡是String型別,所以使用equals來比較內容是否相同
if (dest.equals(arr[i])) {
System.out.println("找到了指定元素,位置為:" + i);
isFlag = false; //如果進來了就把之前定義好的true改為false
break;
}
}
if (isFlag) {//如果沒有進去過,就還是ture
System.out.println("很遺憾沒有找到哦!");
}
//二分查詢:前提條件是必須是有序的陣列,升序或者降序都沒關係
int[] arr2 = new int[]{-98, -34, -3, 0, 34, 45, 98, 234, 333}; //升序
int dest1 = 45;//要查詢的數指為 45 所以宣告一個變數
int head = 0; //初始的首索引
int end = arr2.length - 1;//初始的末索引
boolean isFlag1 = true;
while (head <= end) {
int middle = (head + end) / 2;// middle是中間索引值的意思
if (dest1 == arr2[middle]) {//要查詢的值 剛好等於中間值
System.out.println("找到了指定元素,位置為:" + middle);
isFlag1 = false;
break;
} else if (dest1 < arr2[middle]) { //升序情況下:中間值比要查詢的數大 ,那麼就是從新開始了頭是dest1,尾是中間值
end = middle - 1;
} else { //dest1 > arr2[middle]
head = middle + 1;
}
}
if (isFlag1) {
System.out.println("很遺憾沒有找到哦!");
}
}
}
相關文章
- 搜尋/查詢
- PostgreSQL實時高效搜尋-全文檢索、模糊查詢、正則查詢、相似查詢、ADHOC查詢SQL
- Java陣列排序和查詢Java陣列排序
- SQL查詢的:子查詢和多表查詢SQL
- MySQL之連線查詢和子查詢MySql
- java陣列回顧---線性查詢最大值最小值---二分查詢Java陣列
- mysql-分組查詢-子查詢-連線查詢-組合查詢MySql
- 二維陣列查詢陣列
- JavaFX教程-查詢陣列Java陣列
- 陣列的主元素查詢陣列
- 離線查詢與線上查詢
- 資料庫 - 連線查詢、巢狀查詢、集合查詢資料庫巢狀
- 查詢演算法集:順序查詢、二分查詢、插值查詢、動態查詢(陣列實現、連結串列實現)演算法陣列
- ubuntu 終端內查詢/搜尋Ubuntu
- 二分搜尋(折半查詢)
- 線性時間查詢
- js查詢陣列元素位置JS陣列
- 陣列使用find查詢用法陣列
- 二維陣列中的查詢陣列
- mysql查詢結果多列拼接查詢MySql
- Elasticsearch中的Term查詢和全文查詢Elasticsearch
- mysql查詢語句5:連線查詢MySql
- select查詢之四:連線查詢
- oracle 精確查詢和模糊查詢Oracle
- MySQL聯結查詢和子查詢MySql
- 線性查詢演算法演算法
- 查詢之折半查詢
- MongoDB查詢(陣列、內嵌文件和$where)MongoDB陣列
- fastadmin中快速搜尋時執行查詢的欄位 預設查詢idAST
- SSH:hiberate實現資料的查詢(單查詢和全查詢)
- 資料庫資料的查詢----連線查詢資料庫
- MongoDB之資料查詢(陣列)MongoDB陣列
- 陣列中查詢給定值陣列
- 查詢提示;及重排陣列分析陣列
- MongoDB(12)- 查詢嵌入文件的陣列MongoDB陣列
- 【JZOF】二維陣列中的查詢陣列
- 連線查詢
- 順序查詢和二分查詢