c++排序之二分法
来源:互联网 发布:小猪cms破解版 编辑:程序博客网 时间:2024/05/22 11:58
1. 二分法查找是一种非常高效的搜索方法,主要原理是每次搜索可以抛弃一半的值来缩小范围。
在离散数学中,如果f(n)是在规模为n的搜索序列中搜索一个元素所需要的比较次数,当n是偶数时,f(n)= f(n/2)+2
2. 二分法查找的时间复杂度是O(logn)
3. 二分法查找的适用情况一般满足以下几点:(1). 该数组数据量巨大;{2}. 该数组已经排序;(3). 一般要求找到的是某一个值
4. 什么时候我们可以大致判定该题需要用到二分法:(1). 需要对一道时间复杂度为n的题目进行优化;(2). 在题目中提到给到的数组已排序;(3). 只搜索一个值或一个位置
5. 二分法的基本代码如下:对于特定的题只需要修改某些细节即可。
#include <iostream> using namespace std;int search(int arr[10],int target){int start = 0;int end = 9;while(start+1<end){int mid = (start + end)/2;if(arr[mid]<target){start = mid;}if(arr[mid]>target){end = mid;}if(arr[mid]==target){return mid;}if(arr[start]==target){return start;}if(arr[end]==target){return end;}}return -1;}int main (){int _arr[10];for(int i = 0; i < 10; ++ i){cin >> _arr[i];}int _target;cin >> _target;if(search(_arr,_target)==-1){cout << "No , the number doesn't exist in the array!" <<endl;}else {cout <<"Yes,I find the number at " <<search(_arr,_target)+1<<" in the array!" <<endl;}}
0 0
- C语言排序之二分法插入排序篇
- JavaScript之二分法排序
- c++排序之二分法
- 排序算法之 二分法查找
- 八大排序之二分法插入排序
- Java排序算法之二分法插入排序
- 插入排序之二分法插入排序
- 二分法快速排序法 qsort C源码
- 查找与排序之二分法查找篇(C语言实现)
- 数据结构与算法之二分法插入排序
- Java算法之二分法和排序算法
- [学习笔记]排序算法之 二分法查找
- 二分法排序
- 二分法排序
- 二分法 排序
- 二分法排序
- 二分法排序
- 二分法排序
- MongoDB 之CURD操作
- 线程同步
- html学习
- ofstream写入csv文件
- ButterKnife遇到的坑
- c++排序之二分法
- TESTNG和MOCK配合使用实例
- Am命令用法
- 安装过程中出现PKG_CONFIG_PATH的问题解决方法
- 购物商城---SpringMVC拦截器的使用
- Web开发常见问题-tomcat端口被占用:严重: StandardServer.await: create[8005]:
- Android安全攻防战,反编译与混淆技术完全解析(下)
- 01-软件需求规格说明书
- Path Sum III问题及解法