資料結構之對分查詢演算法

2021-06-28 10:04:01 字數 942 閱讀 4834

一 、前提條件:對分查詢的前提是待查詢的資料必須是有序的

二、思想:對分查詢是一種效率很高的查詢方法,但被查詢的資料必須是有序(例如非遞減有序)的。對分查詢首先將查詢鍵與有序陣列內處於中間位置的元素進行比較,如果中間位置上的元素內的數值與查詢鍵不同,根據陣列元素的有序性,就可確定應該在陣列的前半部分還是後半部分繼續進行查詢;在新確定的範圍內,繼續按上述方法進行查詢,直到獲得最終結果。

在陣列中的資料是有序的,如果是增序的,是指下標越小的陣列元素中儲存的資料也越小,減序則相反。設陣列變數d中儲存了n個互不相同的資料,則陣列變數d中的資料是增序時,有:

d(1)

三、優勢

由於對分查詢沒查詢一次,查詢範圍就將縮小一半,因此效率要遠遠高於順序查詢。

c語言**實現:

#ifndef binarysearch_h

#define binarysearch_h

#define notfound -1

#include

int binarysearch(int *,int ,int );

#endif

#include"binarysearch.h"

int binarysearch(int array , int x, int size)

else if(array[mid]>x)

else

return mid; }

return notfound; }

#include"binarysearch.h"

int main() ;

int size = sizeof(array)/sizeof(int);

int x = 5;

int index = binarysearch(array,x,size);

printf("the index is %d\n",index);

return 0; }

資料結構之查詢演算法

在日常生活中,幾乎每天都要進行一些查詢的工作,在 簿中查閱某個人的 號碼 在電腦的資料夾中查詢某個具體的檔案等等。本節主要介紹用於查詢操作的資料結構 查詢表。查詢表是由同一型別的資料元素構成的集合。例如 號碼簿和字典都可以看作是一張查詢表。一般對於查詢表有以下幾種操作 在查詢表中只做查詢操作,而不改...

資料結構48 資料結構之查詢演算法

在日常生活中,幾乎每天都要進行一些查詢的工作,在 簿中查閱某個人的 號碼 在電腦的資料夾中查詢某個具體的檔案等等。本節主要介紹用於查詢操作的資料結構 查詢表。查詢表是由同一型別的資料元素構成的集合。例如 號碼簿和字典都可以看作是一張查詢表。一般對於查詢表有以下幾種操作 在查詢表中只做查詢操作,而不改...

資料結構之查詢演算法總結

基礎知識 二分查詢演算法 有序表 順序儲存 複雜度o logn 一般用於強調有序陣列查詢時。雜湊表 o 1 時間根據關鍵字,得到所需的值。二叉搜尋樹 排序樹 根節點左邊值小於根結點,右邊值大於根結點。int binary search int data,int length,int key retu...