分治算法----二分搜索

算法:BINARYSEARCHREC

偽代碼如下:

輸入:按非降序排列的n個(gè)元素的數(shù)組A[1...n]和元素x

輸出:如果x=A[j],則輸出j,否則輸出0

binarysearch(1,n)

binarysearch(low,high)

if low>high then return 0

else

? ? mid?←(low+high)/2

? ? if x=A[mid] then return mid

? ? else if x<a[mid] then return?binarysearch(low,mid-1)

? ? else return?binarysearch(mid+1,high)

end if

時(shí)間復(fù)雜度為:Ο(logn)

詳細(xì)代碼如下:

int binary_search_recursion(const int array[], int low, int high, int key)

{

? ? int mid = low + (high - low)/2;

? ? if(low > high)

? ? ? ? return -1;

? ? else{

? ? ? ? if(array[mid] == key)

? ? ? ? ? ? return mid;

? ? ? ? else if(array[mid] > key)

? ? ? ? ? ? return binary_search_recursion(array, low, mid-1, key);

? ? ? ? else

? ? ? ? ? ? return binary_search_recursion(array, mid+1, high, key);

? ? }

}

參考:分治算法-二分查找 - 馮興偉 - 博客園

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、 對(duì)以下一組數(shù)據(jù)進(jìn)行降序排序(冒泡排序)。“24,80,35,8,9,54,76,45,5,63” int ...
    面條168閱讀 727評(píng)論 0 3
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi閱讀 7,864評(píng)論 0 10
  • 插入排序def inster_sort(lists): count = len(lists) for ...
    _Haimei閱讀 367評(píng)論 0 1
  • 今日體驗(yàn),立刻行動(dòng)所帶來的結(jié)果,確實(shí)是有非常大的提升,持續(xù),不拖拉! 找核心,馬上去做! 轉(zhuǎn)身用,好的習(xí)慣,...
    王海博閱讀 154評(píng)論 0 0
  • 有人說,讀書人是幸福人。 因?yàn)樗齻兺瑫r(shí)擁有兩個(gè)世界。 現(xiàn)實(shí)世界和書的世界。 你一個(gè)人的小世界~ 提起閱讀,從離開學(xué)...
    粘人的小刺猬閱讀 497評(píng)論 0 3

友情鏈接更多精彩內(nèi)容