码迷,mamicode.com
首页 >  
搜索关键字:折半查找 查找算法 二分搜索    ( 1751个结果
并查集
并查集是一种树型数据结构,主要用于处理不相交集体之间的合并和判断某一元素所在的集合(并查集中集体是用其最高父结点表示),这种数据结构维护一个数组,father[],用于记录每个元素的父亲,也就其所在的集合;其主要的操作有两种,查找和合并,对于查找算法可以用路径压缩进行优化,除了这两种主要的操作,并查...
分类:其他好文   时间:2015-05-02 20:46:04    阅读次数:144
算法:顺序查找与折半查找
资料摘自: typedef int DataType; //顺序查找算法 //用顺序查找在n元数组list中查找与key等值的元素,返回该数组元素的下标 //若未找到,则返回-1 int SeqSearch(DataType List[], int n, DataType key) {     for(int i = 0; i     {         if(List[i...
分类:编程语言   时间:2015-05-02 18:12:06    阅读次数:173
浅谈递归和尾递归(tail recursive)
一、递归 简单来说,递归的思想就是:把问题分解为规模更小的、具有与原问题有着相同解法的问题。比如二分查找算法,就是不断地把问题的规模变小(变成原问题的一半),而新问题与原问题有着相同的解法。 一般来讲,能用递归来解决的问题必须满足两个条件: 可以通过递归调用来缩小问题规模,且新问题与原问题有着相同的...
分类:其他好文   时间:2015-05-02 18:06:27    阅读次数:116
北大ACM2456——Aggressive cows~~二分搜索
这一题,也是简单的二分搜索,求解放置的牛之间的距离尽可能远,也就是最大化最小值。 主要的一步就是将第i头牛放在了x[j]的位置中,第i + 1 头牛就要放在满足x[j] + d ,k的最小值。 下面是AC的代码: #include #include using namespace std; int N, M; int X[100005]; bool C(int x) { int ...
分类:其他好文   时间:2015-04-30 23:19:52    阅读次数:378
北大ACM1064——Cable master
题目主要的意思是:有N条绳子,它们的长度分别为Li,如果从它们中切出K条长度相同的绳子的话,这K条绳子每一条的最长的长度能是多少? 这一题用二分搜索可以很好的进行求解。 长度分别为0到INF(INF为尽可能大的数)。然后进行二分搜索,不断的缩小范围,循环一定的次数,可以很好的将答案求出。 G++double要用%lf输入,用%f输出,C++是window下的,用%lf输入,用%lf输出。 ...
分类:其他好文   时间:2015-04-30 21:51:06    阅读次数:222
大数据处理算法二:Bloom Filter算法
百度面试题:给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url? Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法。通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合。   一. 实例    为了说明Bloom Filter存在的重要意义,举一个实例...
分类:编程语言   时间:2015-04-29 11:36:59    阅读次数:177
[笔面] 经典算法部分
算法理论1. 算法的几个特征是什么。2. 算法复杂性的定义。大O、θ、、小o分别表示的含义。3. 递归算法的定义、递归算法的两要素。4.分治算法的思想,经典的分治算法(全排列、二分搜索、归并排序、快速排序、线性时间选择、最接近点对问题)。5. 动态规划算法解题框架,动态规划算法的两个要素是什么?备忘...
分类:编程语言   时间:2015-04-29 11:27:25    阅读次数:228
【算法】跨越式搜索之数组查找
题目1:给出一个一维数组A, 大小为n, 相邻元素的差的绝对值都为1. 如A = [1, 0, 1, 2, 3, 2, 1, 2, 3],现在给定A和目标查找数num. 请找到num在数组中的位置。 题目2:在题目一的前提下,现在要返回num的所有索引位置。思路:依次遍历可以实现,但是复杂度O(N). 如果数组第一个元素是A[0], 要找的数是num. 设 t = abs(num - A[0]...
分类:编程语言   时间:2015-04-27 21:59:15    阅读次数:181
求最小的k个元素
题目:      输入n个整数,输出其中最小的k个。     例如:1,2,3,4,5,6,7,8     则最小的4个数为1,2,3,4, #include using namespace std; class MinK{ public: MinK(int *arr, int si) :array(arr), size(si){} bool kmin(int k, in...
分类:其他好文   时间:2015-04-27 15:21:31    阅读次数:122
基于数组二分查找算法的实现
基于数组二分查找算法的实现 二分查找 查找 算法 赵振江 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的...
分类:编程语言   时间:2015-04-26 10:58:49    阅读次数:163
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!