二分查找的思想和实现
来源:互联网 发布:网络技术支持工程师 编辑:程序博客网 时间:2024/06/06 01:23
二分查找:
1.只适用于一组有序数,杂乱无序的数是不能使用二分法查找的
2.思想:根据你查找的数来判断查找前半段还是后半段
/* ======================================================= Name : halfSearch.c Author : fzl Version : Copyright : Your copyright notice ======================================================== */#include <stdio.h>#include <stdlib.h>/* arr数组, len数组长度, data待查找数, 返回找到的下标 */int hSearch(const int *arr, const int len, const int data){ int low = 0; /* 最小边界 */ int high = len - 1; /* 最大边界 */ int mid = 0; /* 中界 */ int c = 1; while (low <= high) { printf("第%d次\n", c++); mid = (high + low) / 2; /* 2分取中 */ if(arr[mid] == data) { return mid; /* 找到, 返回下标*/ } else if(arr[mid] > data) { high = mid - 1;/* 最大边界缩小到 中间-1*/ } else { low = mid + 1;/* 最小边界缩小到 中间+1*/ } } return -1; /* 没找到 返回-1 */}int main(int argc, char *argv[]){ int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int find = 9; printf("a[%d] = %d\n", hSearch(a, sizeof(a) / sizeof(int), find), find); return EXIT_SUCCESS;}
1 0
- 二分查找的思想和实现
- 二分查找的算法思想和实现过程
- 简单二分查找和递归的思想
- 关于二分查找的思想
- java基础面试题--二分查找思想的Java实现
- 二分查找法的基本思想与实现代码
- 二分查找,二叉查找树(二叉排序树)的基本思想以及算法实现
- 二分查找的实现
- 二分查找的实现
- 二分查找的实现
- 二分查找的实现
- 二分查找的实现
- 二分查找的实现
- 二分查找的实现
- 二分查找的实现
- 二分查找的实现
- C语言实现的线性查找和二分查找
- 【算法和数据结构】1.3–分治思想之二分查找(C++实现)
- 机器学习sklearn之菜鸟入门三
- 关于命令行上执行java命令的错误分析
- xml之SAX解析
- 正则表达式全部符号解释
- 同一个世界 三生梦醒 遗迹 攻略
- 二分查找的思想和实现
- 同一个世界 三生梦醒 探索 攻略
- 同一个世界 三生梦醒 历史 攻略
- 同一个世界 三生梦醒 同伴 攻略
- 同一个世界 三生梦醒 理智 攻略
- 同一个世界 三生梦醒 千年 攻略
- if-else语句省略{}时不可以定义变量,否则报错
- cocos2d-x在VS2012环境下编译的异常
- SpringBoot 中常用注解@PathVaribale/@RequestParam/@GetMapping介绍