查找算法:二分法查找
来源:互联网 发布:123风靡网络 编辑:程序博客网 时间:2024/04/29 03:38
一、原理
对于长度为n的有序数组,一般我们采用遍历数组的方法找到数据的位置,这样做效率较低。如果我们能采用二分法的思想,逐步拆分成在很小数组内找解,就能节省很多时间。
对于这种方法,只需要使二分法的中间位置指针指向要找的数据,便可得到答案。
二、程序
使用while循环判断是否mid指向要查找的数据,维护low和high的指向即可。
三、实现
#include <cstdio>int main() { int n, number; scanf("%d%d", &n, &number); int data[n + 5]; int i; for(i = 0; i < n; i++) { scanf("%d", &data[i]); } int low = 0, high = n, mid = (low + high) / 2; while(data[mid] != number) { if(data[mid] > number) { high = mid + 1; mid = (low + high) / 2; } else if(data[mid] < number) { low = mid + 1; mid = (low + high) / 2; } } printf("%d\n", mid + 1); return 0;}
四、思考
本算法有没有优化空间?
参考:斐波那契查找(黄金分割法查找)(仅使用加减实现的二分查找) - 博客频道 - CSDN.NET
0 0
- 查找算法 - 二分法查找
- 查找算法:二分法查找
- 查找算法之二分法查找
- C++ 二分法查找算法
- C++二分法查找算法
- 算法:二分法查找
- 算法--二分法查找
- 【基础算法】二分法查找
- 算法-二分法查找数据
- 算法之二分法查找
- 二分法查找算法
- Java 二分法查找算法
- 算法学习--二分法查找
- 二分法查找算法
- [Algorithm]二分法查找算法
- 查找算法--二分法
- 二分法查找的算法
- 二分法快速查找算法
- word嵌入文档
- 数据挖掘中的数据预处理方法总结
- excel设置下拉列表选项
- 郝斌的C语言基础 159-161 通过函数完成对结构体变量的输入输出
- 安装GlusterFS分布式文件系统
- 查找算法:二分法查找
- 基于Java Socket编程的一对一聊天软件
- OpenCV旋转图像
- 线性筛之一般算法
- Qt5.7.0下的QWT安装
- 高压同步机VF程序中的 sub_VoltandCurrent_Tans() 函数
- 哈尔滨理工2318Mod
- JavaScript作用域
- git常用命令汇总