二分查找算法的实现
来源:互联网 发布:电脑看淘宝直播 编辑:程序博客网 时间:2024/06/05 18:34
二分查找又称折半查找,时间复杂度为logn,效率比较高。
算法思想:
二分查找算法是对于一个有序序列而言的,假设这个序列是升序排列的,那么在查找元素时,首先与序列中的中间值进行比较,如果大于中间值,就从中间值的右边找,如果小于中间值,就从中间值的左边找,直到扎到该元素,或者所查找的序列为空时。
代码示例如下:
#include <stdio.h>#include <assert.h>int Search(int *arr,int len,int value){ assert(arr!=NULL); int left=0;//查找范围的最小值 int right=len-1;//查找范围的最大值 int mid; while(left<=right) { mid = (left + right)/2;//查找范围的中间值 if(arr[mid]<value)//如果要找的值大于中间值,就在右半部分进行查找 { left = mid+1;//右半部分进行查找 } else if(arr[mid]>value) { right = mid;//左半部分进行查找 } else { return right; } } return -1;}
阅读全文
0 0
- 二分查找算法的实现
- 实现二分查找的算法
- 二分查找算法的实现
- 二分查找算法的实现
- 二分查找算法的实现
- [查找算法]--二分查找的Java实现
- 二分查找算法实现
- 二分查找算法实现
- 二分查找算法的C/C++实现
- 二分查找算法(Binary Search)的实现
- PHP的二分查找算法实现
- 二分查找算法(Binary Search)的实现
- java实现的二分查找算法
- 二分查找算法的JAVA实现
- 基于数组二分查找算法的实现
- Java实现的二分查找算法
- 二分查找算法的C语言实现
- Java实现的二分查找算法
- 区间【NOIP2017提高A组模拟9.16】
- 优先队列(详解)
- 数据库学习纪要(十九):MySQL简介-3
- Java进阶之路——从初级程序员到架构师,从小工到专家
- cocos retain and release
- 二分查找算法的实现
- 删除列表中重复值
- leetcode Valid Parentheses 验证括号
- Spring项目热部署方案
- 数据库视频总结
- 文章标题
- spring
- Fragment学习
- 电路稳定性(cir.pas/c/cpp)(栈的应用)