博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二分法查找
阅读量:3525 次
发布时间:2019-05-20

本文共 759 字,大约阅读时间需要 2 分钟。

#include 
int binary_search(int *arr,int len,int find_this){ int mid,start = 0,end = len; while(start <= end) { mid = (start + end) / 2; /* * 要找的数位于右半部分 * 结束边界不变,还是end * 开始边界是之中间边界加1,所以是mid + 1 * */ if(arr[mid] < find_this) start = mid + 1; /* * 要找的数位于左半部分 * 起始边界不变,结束边界是之前的中间边界减1所以是mid - 1 * */ else if(arr[mid] > find_this) end = mid - 1; /* * 这个就是要找的数 * */ else return mid; } /* * 没有要找的数,返回失败 * */ return -1;}int main(){ int brr[] = {0,1,2,3,4,5,6,7,8,9}; int len = sizeof(brr) / sizeof(brr[0]); int i; for(i = 0; i < len; i++) printf("%d ",brr[i]); printf("\n"); int find; printf("What you wanna find:"); scanf("%d",&find); int res = binary_search(brr,len,find); printf("pos = %d,brr[%d] = %d\n",res,res,brr[res]);}

转载地址:http://jxuhj.baihongyu.com/

你可能感兴趣的文章
[LeetCode javaScript] 242. 有效的字母异位词
查看>>
[LeetCode javaScript] 75. 颜色分类
查看>>
[LeetCode javaScript] 179. 最大数
查看>>
[LeetCode javaScript] 56. 合并区间
查看>>
[LeetCode javaScript] 190. 颠倒二进制位
查看>>
[LeetCode javaScript] 521. 最长特殊序列 Ⅰ
查看>>
[LeetCode javaScript] 806. 写字符串需要的行数
查看>>
[LeetCode javaScript] 868. 二进制间距
查看>>
[LeetCode javaScript] 824. 山羊拉丁文
查看>>
[LeetCode javaScript] 463. 岛屿的周长
查看>>
[LeetCode javaScript] 107. 二叉树的层次遍历 II
查看>>
[LeetCode javaScript] 637. 二叉树的层平均值
查看>>
[LeetCode javaScript] 1. 两数之和
查看>>
[LeetCode javaScript] 14. 最长公共前缀
查看>>
[LeetCode javaScript] 26. 删除排序数组中的重复项
查看>>
[LeetCode javaScript] 8. 字符串转换整数 (atoi)
查看>>
[LeetCode javaScript] 28. 实现strStr()
查看>>
cv2.error: OpenCV(3.4.2) c:\projects\opencv-python\opencv\modules\imgproc\src\color.hpp:25
查看>>
前端网页学习7(css背景属性)
查看>>
前端网页学习8(css三大特性:层叠性,继承性,优先级)
查看>>