首页 > 代码库 > 二分查找
二分查找
//循环实现
int binsearch(int* a, int i, int j, int goal){ if(a == NULL) return -1; while(i<=j){ int mid = (i + j)/2; if(a[mid] == goal){ return mid; } else if(a[mid] > goal){ j = mid - 1; } else if(a[mid] < goal){ i = mid + 1; } } return -1;}
递归实现
int binsearch(int* a, int i, int j, int goal){ if(a == NULL) return -1; if(i > j) return -1; int mid = (i + j)/2; if(a[mid] == goal){ return mid; } else if(a[mid] > goal){ return binsearch(a,i,mid-1,goal); } else if(a[mid] < goal){ return binsearch(a,mid+1,j,goal); }}
二分查找
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。