二分查找的递归与非递归!
生活随笔
收集整理的這篇文章主要介紹了
二分查找的递归与非递归!
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
遞歸:
?
int?BinSearch(int?Array[],int?low,int?high,int?key/*要找的值*/)???{??
?????if?(low<=high)??
?????{??
?????????int?mid?=?(low+high)/2;??
?????????if(key?==?Array[mid])??
?????????????return?mid;??
?????????else?if(key<Array[mid])??
?????????????return?BinSearch(Array,low,mid-1,key);??
?????????else?if(key>Array[mid])??
?????????????return?BinSearch(Array,mid+1,high,key);??
?????}??
?????else??
?????????return?-1;
}
?
非遞歸:
?
int?BinSearch(int?Array[],int?SizeOfArray,int?key/*要找的值*/)??{??
????int?low=0,high=SizeOfArray-1;??
????int?mid;??
????while?(low<=high)??
????{??
????????mid?=?(low+high)/2;??
????????if(key==Array[mid])??
????????????return?mid;??
????????if(key<Array[mid])??
????????????high=mid-1;??
????????if(key>Array[mid])??
????????????low=mid+1;??
????}??
????return?-1;??
}
?
轉載于:https://www.cnblogs.com/g0feng/archive/2012/05/15/2502106.html
總結
以上是生活随笔為你收集整理的二分查找的递归与非递归!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 并发编程 todo
- 下一篇: 至于你信不信,我反正是信了——以类为单位