为什么写出正确的二分法很难? 以下是我写出的,估计也有BUG。
来源:互联网 发布:mysql c3p0连接池配置 编辑:程序博客网 时间:2024/04/30 04:07
// 为什么写出正确的二分法很难? 以下是我写出的,估计也有BUG。
int binary_search(const char* key, const char* array[], int ilen)
{
int start = 0;
int end = ilen-1;
while (true) {
int mid = (end + start)/2;
int ret = strcmp(array[mid], key);
if (ret == 0)
return mid;
else if (start == end)
break;
else if (ret > 0) // value > key
end = mid;
else { // value < key
if (start == mid)
++start;
else
start = mid;
}
}
return -1;
}
const char* data[] = {"a", "ab", "de", "df", "hhh", "hn", "hz", "ln", "z"};
for (int i = 0; i < 9; i++)
printf("%d/n", binary_search(data[i], data, 9));
const char* key[] = {"a2", "ab2", "de", "df1", "hxhh", "hn", "1hz", "lnx", "zz"};
for (int i = 0; i < 9; i++)
printf("%d/n", binary_search(key[i], data, 9));
- 为什么写出正确的二分法很难? 以下是我写出的,估计也有BUG。
- 写出以下标识符的命名规则
- 有以下宏定义, #define MIN(A,B) ((A) <= (B) ? (A) : (B)) 请写出一种不能正确返回的情况?
- 程序是写出来的
- 怎样写出一个正确的二分搜索
- 如何正确的写出二分查找算法
- 如何写出正确的二分查找?
- 如何写出正确的单例模式
- 事后诸葛亮:如何写出没有bug的软件
- 写出几种IE6 BUG的解决办法
- 因为你不喜欢我。。。这是一篇很值得一看的文章。写出了很多心声......
- 发现用混合C的C++很难写出完全正确的程序
- 依照以下条件写出合适的XML Schema.
- 如何才能写出一篇有影响力的blog
- 写出servlet重要的对象有哪些?
- keygen是怎么写出来的。
- 编程技术是写出来的
- 技术书是怎么写出来的
- GCC 使用指南
- 测试一下用Live Writer 写 csdn 的 Blog
- FreeBSD中X Window 的使用
- 不经意的回来
- 网页刷新代码-刷新页面实现方式总结篇
- 为什么写出正确的二分法很难? 以下是我写出的,估计也有BUG。
- VB 获取系统26项配置信息
- 页面自动跳转的几种实现方法
- 编译DXperience 7.1源码和升级原有的应用程序
- C++对话系列学习摘录
- 看不到影子的梦
- 男人最帅的42个瞬间
- eclispe中的颜色设置
- 内存学习