前幾天跟大家粗劣的介紹了一下這幾種查詢方法,現在在下再詳細一點點介紹(技術不好,請見諒!)
1,順序查詢
顧名思義就是按順序乙個接著乙個去查詢啦!
我們可以先建立乙個順序表
#define maxsize 100
typedef struct
datatype;
typedef struct
sstable;
然後呢,就乙個接乙個查詢,實現方法
int seqsearch(sstable s, datatype x)
if( s.list[i].key == x.key )
else}
其實這種方法是很容易想到的,只要跟著順序表乙個乙個找就是了
2,折半查詢
這種方法還是需要一點點技術的,他比上面的方法要快一些。他的原理其實也不難:
在乙個有序排列中,比如:9,23,26,32,47
首先先要確定low=9、high=47、mid=26(第乙個,最後乙個,中間乙個)
如果我們查詢的是32的話 ,因為32大於mid,所以就在後部分找,這樣就可以把時間縮小一半
實現方法為:
int binarysearch(sstable s, datatype x)
else if( s.list[mid].key > x.key )
else if( s.list[mid].key }
3,引索順序不表查詢
引索順序表的查詢就是把順序表分成幾個單元,然後為這幾個單元建立引索,利用引索在其中乙個單元中進行查詢。
我們先建立乙個引索表
typedef struct
indextable[indexsize];
然後就可以進行查詢了,查詢的**如下:
int seqindexsearch(sstable s, indextable t , int m, datatype x) }
if( i>= m )
j=t[i].index; //要查詢的元素在第j單元
if( i
else
while( j
else
j++;
}return -1;}
上面就是三種基本的查詢方法,不知道大家能不能明白?!
順序查詢 折半查詢
順序查詢 基本流程 從線性表的一端開始,逐一查詢滿足條件的線性表元素,有則返回元素位置資訊,無則返回錯誤資訊。include using namespace std int seq search int arr,int len,int key return 1 int main int num 6 ...
順序表的順序查詢和折半查詢
順序查詢 include using namespace std intseqsearch int r,int n,int k return i int main int k cout 請輸入要查詢的數 k for int i 1 i n i cout 該數在陣列中的位置為 cout seqsear...
靜態查詢表 順序查詢 折半查詢 分塊查詢
引言 除去各種線性和非線性的資料結構外,還有一種在實際應用中大量使用的資料結構 查詢表。查詢表是由同一型別的資料元素構成的集合。對查詢表經常進行的操作有 1 查詢某個 特定的 資料元素是否在查詢表中 2 檢索某個 特定的 資料元素的各種屬性 3 在查詢表中插入乙個資料元素 4 從查詢表中刪去某個資料...