二分搜索,欧几里德算法
二分搜索: 给定一个整数X和数组A[N],A[N]已经排好序,要求X=A[m]时m的值,如果没有,返回-1.
整个搜索过程从A[mid]开始,即判断x与数组中间数的大小关系,这样就把范围缩小一倍了,然后在分割出来的数组中再与中间数比较,于是就可以很快得出结果.
代码:
1 template<typename T> 2 int BinarySearch(const vector<T>& a,const T& x) 3 { 4 int low=0,high=a,size()-1; 5 int mid=(low+high)/2; 6 while(low<high){ 7 if(a[mid]<x) 8 low=mid+1; 9 else if(a[mid]>x) 10 high=mid-1; 11 else 12 return mid; 13 } 14 return -1; 15 }
欧几里德算法:计算两个数的最大公因数(同时整除两个的最大整数).
百度百科上写的很多,http://baike.baidu.com/view/1241014.htm.
我的理解,假设要求a,b的最大公约数.假设d是a,b的最大公约数.在a大于b的情况下,a=m*b+r (m!=0,r=a mod b).d是a,b的最大公约数,有,a mod d=0;b mod d=0.那么(m*b+r) mod d=0,于是的推出
r mod d=0,即d也是a mod b的公约数.设最大公约数函数gcd(a,b),那么他也等于gcd(b,a mod b).递归下去,于是当余数为0时,最大公约数就是最后一个被除数了.
代码:
long Gcd(long m,long n) {while(n!=0){long rem=m%n;m=n;n=rem;}return m; }
转载于:https://www.cnblogs.com/yTPety/archive/2013/03/04/2943447.html
二分搜索,欧几里德算法相关推荐
- 【数论基础】欧几里德算法及其各种应用
目录: 欧几里德算法(辗转相除法) 1.问题引入:线段上格点的个数 2.输入两个正整数,求最大公约数和最小公倍数 3.P1029 最大公约数和最小公倍数问题 欧几里德算法(辗转相除法) 辗转相除法, ...
- 欧几里德算法(自写理解)
gcd欧几里德算法 求取最大公约数gcd(a,b) 这个不用多说了 extgcd拓展欧几里德算法 用于求解 ax+by=gcd(a,b)的解 这个要多说一下 ax+by=c,(a,b,c都是常数) ...
- poj 2115 C Looooops(扩展欧几里德算法)
题意: 对于for(i=A ; i!=B ;i+=C)循环语句,问在k位存储系统中循环几次才会结束. 比如:当k=4时,存储的数 i 在0-15之间循环.(本题默认为无符号) 若在有限次内结束,则输出 ...
- 欧几里德与扩展欧几里德算法——密码学笔记(五)
一.欧几里德算法 又称辗转相除法,用于计算两个整数a,b的最大公约数. 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a% ...
- 欧几里德算法与扩展欧几里德算法
欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数. 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd( ...
- poj 1061 (扩展欧几里德算法)
首先先抛出一个例题: 青蛙的约会 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 89761 Acc ...
- 无聊博文之:用同余的语言阐述欧几里德算法
下面用同余的语言来阐述欧几里德算法.对于整数$a$和正整数$b$,我们知道 \begin{equation} \label{eq:11.16} a=q_1b+r_1(q_1\geq 0,0\leq r ...
- ACM数论之旅4---扩展欧几里德算法(欧几里德(・∀・)?是谁?)
为什么老是碰上 扩展欧几里德算法 ( •̀∀•́ )最讨厌数论了 看来是时候学一学了 度娘百科说: 首先, ax+by = gcd(a, b) 这个公式肯定有解 (( •̀∀•́ )她说根据数论中的相 ...
- 如何利用扩展欧几里得算法求解不定方程_欧几里德算法、拓展欧几里德、中国剩余定理...
01.欧几里德算法(Euclidean algorithm)(辗转相除法) 欧几里德算法又称辗转相除法,主要是用于计算两个整数a,b的最大公约数. 简单点说一下算法原理:两个整数的最大公约数等于其中小 ...
最新文章
- AI 模型性能上不去?这真的不怪我,ImageNet 等数据集每 100 个标签就错 3 个!...
- SQLite 使用教程2 语法
- android相对布局代码,Android基础_3 Activity相对布局(示例代码)
- win10上面安装win7的虚拟机怎么相互ping通
- Windows系统下,使用Emacs+Putty操作远程机器
- Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable
- 差分硬盘的merge(合并差异)实验分析
- JavaScript字符串split方法
- VBoxGuestAdditions加载不了
- 【搞定GTD】用iPhone打造GTD实践1年后的心得体会
- docker常用命令
- 离散题目16——自反闭包
- 百思不得姐框架(二)
- Hack the box (HTB) Metatwo靶机
- 复盘总结笔记-吴志华老师讲座
- 科林明伦杯哈尔滨理工大学第六届程序设计团队赛-Team模拟
- 前端:简述表单提交前如何进行数据验证
- extern的几种用法
- 如何选股,短线选股策略
- 2M误码仪都有哪些功能? TFN T1000M数据误码传输测试仪
热门文章
- 华中师范大学邮箱matlab,正版软件管理与服务平台(华中师范大学)
- 在Python中查找字符串长度
- 手机怎么安装py thon_Python属性装饰器– Py​​thon @property
- Python字符串replace()
- 开课吧Java课堂:StringBuffer全解,非常详细
- MyEclipse破解文件+破解说明
- tomcat使用线程池配置高并发连接
- boost计算随机数和计算crc32简单示例 - jwybobo2007的专栏 - 博客频道 - CSDN.NET
- 音标与字母发音不同的字母总结
- YAF 关闭错误异常使用trigger_error来处理