要求:
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 ...