折半查找法
2015-10-20 20:22
351 查看
#include <stdio.h> int half_search(int arr[], int first, int last, int n) { int mid = 0; while (first <= last) { mid = (first + last) / 2; if (n < arr[mid]) { last = mid - 1; } else if (n>arr[mid]) { first = mid + 1; } else { return 1; } } return -1; } int main() { int arr[] = { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 }; int i; while (1) { scanf("%d", &i); if ((half_search(arr, 0, sizeof(arr) / sizeof(arr[0]) - 1, i) == -1)) { printf("not exist\n"); } else { printf("%d\n", i); } } return 0; }
相关文章推荐
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- 探讨C语言的那些小秘密之断言
- C语言实现BMP转换JPG的方法
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- C语言查找数组里数字重复次数的方法
- C语言泛型编程实例教程
- C语言中使用lex统计文本文件字符数
- 在C语言中转换时间的基本方法介绍
- C语言进制转换代码分享