【C语言】二分查找法

来源:互联网 发布:微信小游戏源码 编辑:程序博客网 时间:2024/05/22 12:23

两种写法:

循环:

int fuc(int *s,int x,int max){int left=0;int right=max-1;int mid;while(left<=right){mid=(right+left)/2;if(s[mid]>x)right=mid-1;else if(s[mid]<x)left=mid+1;else return mid;}return -1;}

递归:

int fuc2(int *s,int x,int left,int right){int mid=(left+right)/2;int num=-1;if(left<=right){if(s[mid]<x)num=fuc2(s,x,mid+1,right);else if(s[mid]>x)num=fuc2(s,x,left,mid-1);else num=mid;}return num;}


0 0
原创粉丝点击