陣列的普通查詢與折半查詢

2022-09-14 02:03:09 字數 1098 閱讀 1631

前提知識:

(暫未發布)陣列的相關知識(遍歷方式)

普通查詢:本質通過陣列的遍歷與if邏輯結構判斷實現

實現步驟:

1. 遍歷陣列

2. 遍歷過程中,使用元素和陣列中的元素進行比較

如果相同,返回元素在陣列中的索引

如果不同,返回負數

public

static

int search(int arr, int

key)

}  return -1;

}

折半查詢:前提陣列必須為從小到大

不重複線性陣列!

非遞迴方式:

public

static

int binarysearch(int arr, int

key)

else

if (key

else

}//迴圈結束,無法折半,元素沒有找到 ,返回-1

return -1;

}

jdk1.8的j**a.utils.arrays的二分查詢底層原始碼分析

//

like public version, but without range checks.

private

static

int binarysearch0(int a, int fromindex, int

toindex,

intkey)

return -(low + 1); //

key not found.

}

遞迴方式:

int  binarysearch(int arr ,int start ,int end,int

key)

//遞迴出口2:找到對應key值得索引

if(key ==arr[mid])

else

if (key >arr[mid])

else

}

順序查詢與折半查詢

includeusing namespace std const int max 10 順序查詢 int seqsearch1 int r,int n,int k return i 返回元素在陣列中的下標即元素的序號 int seqsearch2 int a,int n,int x 陣列a,n總數,...

查詢 折半查詢

折半查詢 int search keytype key,int n,keytype k return 1 查詢失敗,返回 1 在演算法中,n表示記錄的個數。key表示要查詢的關鍵字。key為關鍵字順序表,每個元素都是對應記錄的關鍵字。例如key 0 為第0個記錄的關鍵字。如果每條記錄的資訊與它的關鍵...

函式 折半查詢與陣列的逆置

實現乙個函式,完成一維陣列元素的逆置 include void reverse int arr1,int n printf 逆置後的陣列為 n for i 0 iprintf arr d d i,arr1 i printf n printf n int main p sizeof arr sizeo...