資料結構之二分查詢

2021-07-11 06:37:39 字數 562 閱讀 8992

二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好;其

缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。首先,假設表中元素是按公升序排列,將表中間位置記錄的

關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功;否則利用中間位置

記錄將表分成前、後兩個子表,如果中間位置記錄的關鍵字大於查詢關鍵字,則進一步查詢前一子表,否則進一步查詢後一子表。重複以上過程,直到找到滿足條件的

記錄,使查詢成功,或直到子表不存在為止,此時查詢不成功。

1、必須採用順序儲存結構。

2、必須按關鍵字大小有序排列。

t(n)=o(logn)

非遞迴**:

int binsearch(sqlist r,int n,keytype k)

return -1;

}

遞迴**:

int bsearch(int array, int low, int high, int target)

資料結構之二分查詢

上面我們介紹了順序查詢,但是它的時間複雜度為o n 讓人很受傷啊,所以有了二分查詢,二分查詢是乙個時間複雜度為o logn 的演算法,當然都是說的一般情況下,二分 二分,看名字就知道它的核心是什麼了,就是不斷地額逼近查詢值。include define max len 20 typedef stru...

資料結構之二分查詢

二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好 其 缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。首先,假設表中元素是按公升序排列,將表中間位置記錄的 關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功 否則利用中間位置 記錄將表分成...

資料結構 資料結構之二分查詢

先上 二分查詢,陣列必須為有序的 int binarysearch int key,int a,int length return 1 該函式接受乙個整數鍵和乙個已經有序的int陣列及陣列的大小作為引數。如果該鍵存在於陣列中則返回它的索引,否則返回 1.演算法使用兩個變數lo和hi,並保證如果鍵在陣...