c语言 实现二分查找
来源:互联网 发布:笔记本连不上联通网络 编辑:程序博客网 时间:2024/05/22 12:30
二分查找又称折半查找,优点是比较次数少,查找速度快,而其缺点是要求待查找为有序排列的。
其基本原理是将一组n个数分为两半,取arr[n/2]与待查找的数x比较,若arr[n/2]<x,我们只需在数组arr的右半部分继续查找,反之,则在左半部分继续查找,直至x=arr[n/2],算法终止。
下例为在1-10的数组arr中找一个指定的数字,找到输出数字下标,否则输出找不到。
#include <stdio.h> int binary_search(int arr[10], int key, int left,int right) { while (left <= right) { int mid = left + ((right - left) >> 1); if (arr[mid] < key) left = mid + 1; else if (arr[mid] > key) right = mid - 1; else return mid; } return -1; }
int main() { int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int key = 5; printf("请输入要查找的数:"); scanf("%d", &key); int sz = sizeof(arr) / sizeof(arr[0]); int ret = binary_search(arr, key, 0, 9); if (ret == -1) printf("找不到\n"); else printf("arr[%d]\n",ret); return 0; }
运行结果:
3 0
- C语言实现二分查找
- 二分查找 c语言实现
- 二分查找C语言实现
- C语言实现二分查找
- c语言 实现二分查找
- c语言实现二分查找
- C语言实现二分查找算法
- C语言实现二分查找算法
- c语言二分查找泛型实现
- 二分查找的C语言实现
- c语言利用递归实现二分查找
- 二分查找算法的C语言实现
- c语言实现二分查找算法
- 用C语言实现二分查找算法
- 用C语言实现二分查找
- c语言实现二分查找变种题型
- C语言 ---- 递归实现二分查找
- 二分查找(C语言实现)
- WEB-INF目录与META-INF目录的作用
- stm32在keil编译环境下使用printf函数
- WEB-INF目录与META-INF目录的作用
- Swift 3必看:新的访问控制fileprivate和open
- 318. Maximum Product of Word Lengths | 字符串长度相乘最大值
- c语言 实现二分查找
- HTTP协议分析
- keras的Embedding层
- 二叉树算法
- 欢迎使用CSDN-markdown编辑器
- poj 1141 Brackets Sequence (经典dp)
- mysql触发器的使用
- 基于IMOOC强力django+杀手级xadmin 打造上线标准的在线教育平台课程的学习(1)
- 028克隆元素