雜湊查詢和二分法

2022-05-16 03:26:27 字數 1162 閱讀 2985

第一步,讓陣列元素全部為零;

第二部,輸入資料,並建立資料與陣列元素的關係,建立直接關係;

第三步 查詢

有乙個資料字典,裡面存有n個數字(n<=100000),小明現在接到乙個任務,這項任務看起來非常簡單——給定m個數字,分別查詢這m個數字是否出現在字典之中;但是考慮到資料量的問題,小明找到了善於程式設計的你,希望你可以幫他解決這個問題。

輸入資料只有一組!

第一行包含兩個整數n m,分別代表字典中數字的個數和要查詢的數字的個數。

接著n行代表字典中的n個數字。

最後m表示要查詢的數字。

如果某個數字存在,則輸出yes,否則輸出no

5 312

3455

410

yes

yesno

/*

這是二分法查詢,二分法查詢相對比較簡單易懂,不做詳細解釋

*/#include

#include

int cmp(const

void *a,const

void *b)

int search(int a,int key,int n)

return

0;

} void main()

qsort(a+1,n,sizeof(a[0]),cmp);//

此時a+1是因為a是從1開始記錄資料的

for(i=0; i"

%d",&key);

if(search(a,key,n))

printf("

yes\n

");

else

printf("

no\n

");

} }

#include

#include

void main()

for(i = 1;i<=n;i++)

for(i=0; i"

%d",&key);

if( a[key]==1)

printf("

yes\n

");

else

printf("

no\n

");

} }

查詢,二分法,雜湊表,雜湊函式

利用設定哨兵的方法,將第乙個元素設定為要比較的值,這樣可以減少幾次判斷 暴力搜尋的方法 intsequetialsearch int a,int n,int key return i 如果事先再儲存的過程中,就已經時有序的了,那麼可以使用二分法查詢binary search 二分法查詢的判斷次數,只...

C 二分法查詢,遞迴二分法

用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...

python二分法查詢 Python 二分法查詢

二分法查詢主要的作用就是查詢元素 lst 1,3,5,7,12,36,68,79 資料集 百萬級資料 num int input 請輸入你要查詢的元素資訊 for el in lst if num el print 存在 break else print 不存在 len lst 0 1 2 3 4 ...