
简单算法
weixin_43608214
这个作者很懒,什么都没留下…
展开
-
二分查找函数BinarySearch
写一个函数BinarySearch,在包含size个元素的、从小到大的int数组a里查找元素P,如果找到,则返回下标,如果找不到则返回-1.要求复杂度O(log(n)). int BinarySearch(int a[],int size,int p) { int L=0;//查找区间的左端点 int R=size-1;//查找区间的右端点 while(L<=R)//如果查找区间不为空就继续...原创 2019-01-21 20:55:41 · 1159 阅读 · 0 评论 -
找一对数(二分法)
输入n(n<=1000)个整数,找出其中的两个数,他们之和等于整数m(假定肯定有解)。题中所有整数都能用int表示 解法1: 用两重循环,枚举所有的取数方法,复杂度是O(n^2)的。 for(int i=0;i<n-1;++i) for(int j=i+1;j<n;++j) if(a[i]+a[j]==m) break; 100000^2=100亿,在各种OJ上提交或参加各种程序...原创 2019-01-23 10:06:20 · 414 阅读 · 0 评论 -
农夫和奶牛(二分法)
农夫john建造了一座很长的畜栏,它包括N(2<=N<=100000)个隔间,这些小隔间的位置为x0,…,xn-1(0<=xi<=1000000000,均为整数,各不相同)。 john的C(2<=C<=N)头牛每头分到一个隔间。牛都希望互相离得远点省得互相打扰。怎样才能使任意两头牛之间的最小距离尽可能的大,这个最大的最小距离是多少呢? 解法1: 先得到排序后的隔...原创 2019-01-23 11:16:43 · 2230 阅读 · 1 评论