c/c++算法之正确实现二分查找

来源:互联网 发布:mac怎么设置屏幕刷新率 编辑:程序博客网 时间:2024/05/21 09:16

90%程序员无法正确实现的二分查找 大家一起看看

      请实现二分查找,完成函数: int binary_search(int array[],int n,int value) n:数组大小 value:要查找的数值 return:找到了,返回找到的数的下标(存在重复元素时,返回最小的下标),没找到,返回-1

int binary_search(int array[],int n,int value);int _tmain(int argc, _TCHAR* argv[]){int arr[]={1,4,7,8,9};int temp=binary_search(arr,5,8);cout<<temp<<endl;return 0;}int binary_search(int array[],int n,int value){int m_left=0;int m_right=n;while (m_left<=m_right){int m_middle=m_left+((m_right-m_left)>>1);if (array[m_middle]<value){            m_left=m_middle+1;}else if (array[m_middle]>value){m_right=m_middle-1;}elsereturn m_middle+1;}return -1;}


如有异议,欢迎交流