折半查詢法也稱為二分查詢法,採用分治策略,可以以o(log n)完成搜尋任務,條件就是陣列有序。
演算法思想:
平時我們看到的都是迭代實現,很少有人去遞迴,這裡給出乙個遞迴的實現。
遞迴實現:
template
intbinary_search(const key*r,const
int&low,const
int&high,constkey&k)
else
if(low==high)
else
return-1;
}再給乙個迭代的,也就是我們平時很經常用到的。
迭代實現:
template
intbinary_search(const key*r,const
int&size,constkey&k)
if(low>high)
return-1;
else
}
折半查詢遞迴和非遞迴實現
折半查詢,在此做一總結,遞迴和非遞迴實現如下所示 1 data增序排列3 非遞迴折半查詢 4int binarysearch int data,int keyvalue,int len 15return 1 16 1718 遞迴折半查詢 19int binarysearchrecursion int...
二分查詢(折半查詢)的遞迴和非遞迴實現(c )
1.首先確定整個查詢區間的中間位置 mid start end start 2。2使用待查關鍵字key值與中間位置的關鍵字值進行比較。3 若相等,則查詢成功 若大於,則在後 右 半個區域繼續進行折半查詢 若小於,則在前 左 半個區域繼續進行折半查詢 4 對確定的縮小區域再按折半公式,重複上述步驟。i...
C 折半查詢的實現
折半查詢法也叫做二分查詢,顧名思義,就是把資料分成兩半,再判斷所查詢的key在哪一半中,再重複上述步驟知道找到目標key 注意 咳咳,敲黑板 折半查詢法僅適用於對已有順序的陣列 資料進行操作!很顯然,折半查詢法相對於其他查詢方法例如順序查詢法效率要高很多 下面我們來實際操作一下,了解二分查詢的奧義。...