二分查找. (代码可在五行以内)
来源:互联网 发布:android反编译软件 编辑:程序博客网 时间:2024/05/17 07:35
算法要求在五行之内写出二分查找,我用了6行,不知道有高手可以用五行写出来不:
#include<stdio.h>#include<stdlib.h>int a[]={10,22,42,51,56,63,78,99,102,118};int binary_search(int low, int high, int key) {if(low > high)return -1;int mid = low + (high - low) / 2;if(a[mid] == key)return mid;return (a[mid] > key ? binary_search(low, mid-1, key) : binary_search(mid+1, high, key));}void main() {int result = binary_search(0, sizeof(a)/sizeof(int), 102);printf("%d\n",a[result]);}
注意 int mid = low + (high - low) / 2;这句,很多面试题目都有这个问题,这个主要是编程的细节问题,开始可能想到这样写:int mid = (low + high) / 2;但是 low,和high的值加起来之后有可能超出int的表示范围,从而使其成为负数。
- 二分查找. (代码可在五行以内)
- 二分查找 (代码五行)
- 二分查找代码
- 二分查找C代码
- 二分查找c++代码
- 二分查找代码
- 二分查找 java代码
- <代码收藏>二分查找
- 二分查找代码
- 二分查找代码练习
- 标准二分查找代码
- 二分查找代码
- 二分查找代码
- 二分查找c++代码
- 五行代码的疑惑
- 滚动程序五行代码
- 二分法五行核心代码
- 二分查找实现 C代码
- 建行总行信息技术类09、10、11三年的笔试回忆资料合集
- C 扩展关键字 typeof 解析
- Android 对应用进行单元测试
- 透明化窗口SetLayeredWindowAttributes[转]
- 桥网络配置
- 二分查找. (代码可在五行以内)
- 自定义控件0
- UDP案例体现
- 一个简单用c和mysql的示范程序
- 12-11-07 jsp小结
- DDR之ZQ
- 《乔布斯传》读后感
- SP2-1503: 无法初始化 Oracle 调用界面 SP2-1503: 无法初始化 Oracle 问题的解决办法
- C#简单水晶报表打印步骤