算法学习之二分查找
来源:互联网 发布:单片机红外发射 编辑:程序博客网 时间:2024/06/11 21:10
一.算法分析
二分查找使用了分治的思想,递归方程为T(n)=T(n/2)+(-)(1),算法复杂度为O(lgn),比线性的查找方式快了许多,但是条件是该方程必须是排好序的,否则时间就会退化成线性时间。
二.代码实现
#include <iostream>#include <cstring>#include <algorithm>using namespace std;int cmp(const void *a,const void *b){return *(int *)a>*(int *)b?1:-1;}int find(int *a,int keyword,int s,int e){int mid;mid=(s+e)/2;if(a[mid]==keyword) return mid;else if(s==e) return -1;else if(a[mid]<keyword) return find(a,keyword,mid+1,e);else find(a,keyword,s,mid-1);}int main(){while(1){int keyword;cin>>keyword;int a[]={4,1,5,6,4,6,20,13,6,7};qsort(a,10,sizeof(a[10]),cmp);for(int i=0;i<10;i++){cout<<a[i]<<" ";}cout<<endl;cout<<find(a,keyword,0,9)<<endl;}return 0;}
0 0
- 算法学习之二分查找
- 算法学习之二分查找
- 算法学习之路-二分查找
- 算法学习之java实现二分查找
- 算法学习-二分查找
- 算法之二分查找
- 算法之二分查找
- 算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找算法
- 基础算法-桶排序
- Android EditText取消焦点并关闭输入法
- 进程与线程区别
- 【C++】《C++标准程序库》小结第十二章-数值
- 搜索引擎选择
- 算法学习之二分查找
- 最大堆与最小堆的实现
- Go语言学习七:结构体
- 【LeetCode】9. Palindrome Number回文数判断
- ActiveMQ的基本使用
- Codeforces Round #105 (Div. 2) (D. Bag of mice(概率DP))
- 第三周个人所得税计算器
- 集合框架--Map集合
- 第3周项目4-用穷举法解决组合问题(4)三色球问题