二分入门--二分知识 及 几种情况
来源:互联网 发布:最新网络角色游戏 编辑:程序博客网 时间:2024/05/21 04:40
二分排序
- 时间复杂度是 log n 最坏的情况下是 n
- 一个条件是带查询数组是有序的,分两种 一升序 而降序
- 主要思路就是指定两个指针start end 分别指向数组元素的两端,然后比较数组中间的arrat【mid】 和待查找元素,n<a[mid] 则根据升序降序 去缩减区间 改变start 和end来实现。
/*
直接找到某值在右若干个 n时 找n 以下是 若找到中间值是n则输出
本程序主要意思是输出要找的值的左边的一个值(当此值不存在时)
#include<bits/stdc++.h>using namespace std; <<二分找某值+详解.txt>> int fun(int a[],intlen,int n){intl=1,h=len,mid=0;while(l<h) //l<h 就是当 1 2 3 4 5 6 7 到5---7时找到中间值为6条件使mid-1 因此l=h结束while 循环 //l<=h 时输出l 为4 但输出h就为l-1 因为当h<l条件便结束{mid=(l+h)/2;if(a[mid]==n)returna[mid];elseif(a[mid]>n){h=mid-1;cout<<"左边边界变为"<<l<<"右边边界变为"<<h<<endl;}else{l=mid+1;cout<<"左边边界变为"<<l<<"右边边界变为 "<<h<<endl;}}returnl;} int main(){intn,a[10000],i,m;while(cin>>n){for(i=1;i<=n;i++)cin>>a[i];cin>>m;cout<<fun(a,n,m)<<endl;}return0;}
#include<bits/stdc++.h>using namespace std; int fun(int a[],intn,int len)<<二分之找元素下标.txt>>{intl=0,h=len;intmid=0;while(l<=h){mid=(l+h)>>1;if(n==a[mid])returnmid;elseif(n<a[mid])h=mid-1;elsel=mid+1; } return -1;} int main(){inti,k; inta[1000];intn;while(cin>>n){for(i=0;i<n;i++)cin>>a[i];cin>>k;cout<<fun(a,k,n)<<endl;}return0;}二分之找元素下标
#include<bits/stdc++.h>using namespace std; int fun(int a[],intlen,int n){intl=1,h=len,mid=0;while(l<=h){mid=(l+h)/2;if(n<=a[mid]){h=mid-1;}else{l=mid+1;}}returnl=n?l:-1;} int main(){intn,i;intm; inta[10000];while(cin>>n){for(i=1;i<=n;i++)cin>>a[i];cin>>m;cout<<fun(a,n,m)<<endl;}return 0;}1.2 查找第一个大于等于某个数的下标
阅读全文
0 0
- 二分入门--二分知识 及 几种情况
- 几种情况的二分写法
- 常见几种二分查找
- 几种二分方法整理
- 二分入门
- 二分匹配相关知识
- 二分匹配知识要点
- 二分匹配知识要点
- 二分图相关知识
- 二分图匹配知识
- 【二分 小知识】
- 二分图知识清单
- 几种形式下的二分搜索
- 关于几种二分的想法
- 几种不同的二分查找
- 二分查找需要注意的几点及优化
- 二分查找各种情况汇总
- 二分
- windows下如何编译FreeCAD
- PHP 5 Filesystem 函数
- ping得通外网IP,ping不通外网域名的解决办法
- java 基本8种基本类型默认值
- Java 编程要点之 I/O 流详解
- 二分入门--二分知识 及 几种情况
- PHP Filter 函数
- BIM对建筑行业的影响_国建融科合创
- Kali2.0安装QQ等软件
- 前期学习应用——小练习:通讯录
- Android加密之文件级加密
- zoj 1889 ones 数学
- python 获取队列深度
- JS判断字符串是否包含某字符串 indexOf()方法使用