二分查找(简单版)——数组下标表示
来源:互联网 发布:指南针淘宝店是正品吗 编辑:程序博客网 时间:2024/05/21 10:39
6. 折半查找 请点评
如果不是从一组随机的序列里查找,而是从一组排好序的序列里找出某个元素的位置,则可以有更快的算法:
例 11.4. 折半查找
#include <stdio.h>#define LEN 8int a[LEN] = { 1, 2, 2, 2, 5, 6, 8, 9 };int binarysearch(int number){int mid, start = 0, end = LEN - 1;while (start <= end) {mid = (start + end) / 2;if (a[mid] < number)start = mid + 1;else if (a[mid] > number)end = mid - 1;elsereturn mid;}return -1;}int main(void){printf("%d\n", binarysearch(5));return 0;}
由于这个序列已经从小到大排好序了,每次取中间的元素和待查找的元素比较,如果中间的元素比待查找的元素小,就说明“如果待查找的元素存在,一定位于序列的后半部分”,这样可以把搜索范围缩小到后半部分,然后再次使用这种算法迭代。这种“每次将搜索范围缩小一半”的思想称为折半查找(Binary Search)。思考一下,这个算法的时间复杂度是多少?
- 二分查找(简单版)——数组下标表示
- 二分查找 基于有序数组 返回下标
- 提高篇—调用函数查找数组元素下标(二分法查找)
- 数组的简单二分查找
- 折半查找(二分查找)——简单说明
- 【二分查找】查找数组中第一个比k大的数的下标
- 【二分查找】查找数组中第一个比k大的数的下标
- JAVA数组排序——二分(折半)查找
- 数组——二分查找法
- 二分查找法-指针和数组表示-优化效率
- 在数组中进行二分查找找出某数在数组中的下标
- 排序数组内的查找——二分查找
- 旋转数组(二分查找)
- Java中的二分查找方法,用于获取在数组中的下标
- C#学习笔记—数组的折半查找(二分查找)
- [LeetCode]—Search for a Range 有序数组查找target的下标范围
- 二分查找找下标或者值
- 简单二分查找模板(查找)
- Delphi : keydown与keypress的区别,组合键
- A+B for Input-Output Practice (VI)
- 网络编程Winsock——socket
- 回调函数的意义
- TabControl控件和TabPage
- 二分查找(简单版)——数组下标表示
- 二分查找bsearch.c源码分析
- A+B for Input-Output Practice (VII)
- ios 获取当前时间
- C++与C语言对照学习(设计模式)
- VB查询数据库之结账——机房收费系统总结(五)
- 笔记2 (标准库类型string、vector和bitset)
- 第十四周 数组
- 依赖注入框架Autofac的简单使用