折半查詢的c 模板遞迴和迭代實現

2021-08-22 20:31:49 字數 505 閱讀 8347

折半查詢法也稱為二分查詢法,採用分治策略,可以以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 注意 咳咳,敲黑板 折半查詢法僅適用於對已有順序的陣列 資料進行操作!很顯然,折半查詢法相對於其他查詢方法例如順序查詢法效率要高很多 下面我們來實際操作一下,了解二分查詢的奧義。...