資料結構 折半查詢 c

2021-10-07 18:10:55 字數 889 閱讀 1630

要求:

1.若查詢成功,返回元素在有序陣列中的位置和查詢次數;

2.若查詢失敗,返回出錯標誌和查詢次數。

//low應從0開始,因為設定的陣列下標從0開始

//雖然mid不變,但是當key為首元素時,mid為1也就是第二元素,導致找不到第乙個元素。

#include

using

namespace std;

typedef

int status;

typedef

int keytype;

typedef

int infotype;

typedef

struct

elemtype;

typedef

struct

sstable;

//對順序表初始化

status initsstable

(sstable& st)

//順序表的建立

void

createsstable

(sstable& st)

}//順序表的顯示

status sstableshow

(sstable st)

cout << endl;

return1;

}//折半查詢

int count0;

status search_bin

(sstable st, keytype key)

else

if(key.key)

else

}return-1

;}intmain()

else

return0;

}

資料結構 折半查詢

1 折半查詢需要查詢表中的資料有序的排列,首先將查詢關鍵字k與表中間的元素r mid 進行對比,若k r mid 則將最左端的下標low更新為mid右邊的第乙個下標,繼續進行折半查詢 若k折半查詢的平均查詢長度為 時間複雜度為o log n 2 折半查詢實現演算法 首先輸入乙個有序的序列再輸入需要查...

資料結構 折半查詢

假設有序表按關鍵碼公升序排列,取中間記錄作為比較物件,若給定值與中間記錄相等,則查詢成功 若給定值小於中間記錄,則在有序表的左半區繼續查詢 若給定值大於中間記錄,則在有序表的右半區繼續查詢。不斷重複上述過程,知道查詢成功或者查詢區域無記錄,查詢失敗。private static intbinarys...

資料結構 查詢 折半查詢

簡單介紹下折半查詢,折半查詢僅適用於有序的順序表。查詢成功的平均查詢長度為log2 n 1 1 折半查詢判定樹的樹高為log2 n 1 向上取整 下面投放折半查詢 include include define maxsize 50 define keytype int 順序表結構體 typedef ...