利用C语言实现折半查找
2015-10-21 23:41
302 查看
折半查找,顾名思义,就是一组有顺序的数,按照比较大小的方法找出某一个数,类似二分法
代码如下:
本文出自 “分享中进步” 博客,请务必保留此出处http://xmwen1.blog.51cto.com/10730069/1705052
代码如下:
#include<stdio.h> #include<stdlib.h> void find(int arr1[], int key, int right) { int left = 0, mid; while (left <= right) { mid = (left + right) / 2; if (key == arr1[mid]) { printf("\n找到了,您要找的数是%d,位置为%d\n", key, mid+1); break; } else if (key > arr1[mid]) left = mid + 1; else right = mid - 1; } if (left = right) printf("\n您要找的数不存在,请重试!"); } int main() { int arr[] = {1, 3 ,4 ,5 ,6, 7, 9 ,13, 15 ,36 }; int k,len; len = sizeof(arr); printf("请输入你要查找的数:"); scanf("%d", &k); find(arr,k,len); system("pause"); return 0; }
本文出自 “分享中进步” 博客,请务必保留此出处http://xmwen1.blog.51cto.com/10730069/1705052
相关文章推荐
- C++ 智能指针详解
- 【转】[c/c++ ]字节序与大小端转换--不错
- 爬爬爬之路:C语言(十) 动态内存分配
- 【C语言】 折半查找
- C++虚函数的实现机制
- [OOD-More C++ Idioms] 内部类 (Inner Class)
- 项目39.2求满足条件n=a!+b!+c!的所有三位数n并输出,其中a,b,c分别为n的百、十、个位数。
- c语言/c++常见面试题
- C++中指针和引用的区别(转)
- C语言,内存管理
- 1004. 成绩排名 (20)
- C语言基础—字符串输入输出函数puts和gets
- 用C语言写一个函数返回参数二进制中1的个数
- 自测-3 数组元素循环右移问题
- 构造函数
- 自测-2 素数对猜想
- 自测-1 打印沙漏
- 5-28 猴子选大王
- 黑马程序员-C语言的输入函数
- 5-36 复数四则运算