E简单二分查找

来源:互联网 发布:misuo加密软件怎样 编辑:程序博客网 时间:2024/06/11 01:01

----------------------------------------------------------------------------------------

       简单二分查找

----------------------------------------------------------------------------------------

面对二分查找,主要是你的思路;
第一步:你得把数组有序的排列,一般选择从小到大。
第二步:把 L,R,M确定下来。然后看看你得key
                如果,key ==M,你运气太好一下子就找到了;
如果,key<M,此时你考虑在你的左边找。(从小到大排列为例)
如果,key>M,此时你考虑在你的右边找。(从小到大排列为例)
第三步:循环着,就看你的结束条件了,当然了,L不能去了R的右边吧!则(L< R)

int main (){int s[]={1,3,4,5,6,8,9,11,34};int key =4;  //需要找的关键字int index = -1;//找到返回下标,负责返回-1,没找到int len = sizeof(s)/sizeof(s[0]);//测量数组长度;区别strlenint l= 0;   //左结点int r =len - 1;//右结点int m = (l+r)/2;//中间值int i = 0;while(l <= r){if(s[i]==key){index = m;}else if(s[i] < key){l = m + 1;m = (l+r)/2;index = m;}else {r = m - 1;m = (l+r)/2;index = m;}i ++;}printf("%d\n",index);return 0;}

把简单问题消化掉!

0 0
原创粉丝点击