二分查找
2014-04-13 21:20
211 查看
#include <stdio.h> //LENGTH 为有序表长度 #define LENGTH 100 // int binarySearch(int a[], int value, int len){ int low = 0; int high = len - 1; int mid = 0; while(low <= high){ mid = low + (high - low) / 2; //注意此处,如果写为mid=(low+high)/2的话,容易导致溢出。 if(value == a[mid]){ return mid; }else{ //printf("low:%d, mid:%d, high:%d \n", low, mid, high); if(value < a[mid]){ high = mid - 1; }else{ low = mid + 1; } } } return -1; } int main(){ int array[LENGTH] = {0}; int i = 0; int length = 0; int value; //测试 while(scanf("%d %d", &length, &value)!=EOF){ for(i = 0; i < length; i++){ array[i] = 10 * i; } printf("%d \n", binarySearch(array, value, length)); } return 1; }
相关文章推荐
- WSAAsyncSelect 模型
- hanoi
- 常用SQL语句(增删改查、合并统计、模糊搜索)
- HDU 1085
- 【LeetCode练习题】Combination Sum
- HDU 2108 字符串递归
- wget使用方法(some)
- 杭电acm 2952
- bind "xxx.js" to object using script
- 使用c++编写和使用.so动态链接库
- hdu3786 Floyd或搜索 水题
- 在Linux中用source,dot(.)和直接用脚本文件名执行shell脚本的区别
- 机器学习——深度学习(Deep Learning)
- Android支付接入(一):支付宝
- kvm简介(二)
- 分析位深度与颜色深度的关系和发展策略
- 第三周作业
- JAVA中sort()常用方法总结
- 在3D空间中绘制三角形
- 数据库mysql和mariadb的安装