算法
文章平均质量分 75
justaipanda
这个作者很懒,什么都没留下…
展开
-
算法研究(二) bitmap在排序中的妙用
题目:在一个文件中存放着几百万个非负整形数据,它们最大不超过7位,且无重复数据,现将该文件中的数据按升序进行排序。 对于排序,相信没人会陌生,已知的通用排序算法对于这个题目都显得有些力不从心,昂贵的内存开销(如果采用硬盘排序倒是可以减少内存开销,但时间上将耗费更多),巨大的时间耗费(这点是最不能接受的)。所谓的巧妙算法实际上都是分析问题的特点,针对它的特殊性而得出的。对于这个问题,有两个条件原创 2012-09-25 11:33:24 · 3450 阅读 · 0 评论 -
算法研究(三) 巧用快排
题目:给定一个具有n个元素的实数集A,一个实数t,一个整数k,请问如何快速的确定该实数集中是否存在一个具有k个元素的子集,其所有元素之和小于等于t? 对于这个问题,我首先想到的是排序,只要找到实数集中最小的k个元素,问题也就解了。但对于完全的排序而言实际上是没有必要的,我们只需要确定最小的k个元素就行了。于是我又想到了快排,它的分治思想用在这里是再合适不过了,我们只需对快排作一些改造可以得到原创 2012-09-27 08:18:31 · 1890 阅读 · 0 评论 -
算法研究(四) 一维模式识别
题目:这是一个一维模式识别问题,问题的输入是一个具有n个浮点数据字的向量x,其输出是在输入的任何相邻子向量中找出的最大和,例如,如果输入向量包含下面10个元素: 图中显示了找出的子向量。 按照时间复杂度由大到小,以下给出解此题的四种算法: • 算法一:三重循环比较 O(n3) 伪码如下: max = 0; for (i = 0; i < n; ++i) { for原创 2012-10-03 08:59:39 · 2857 阅读 · 2 评论 -
算法研究(一) 旋转字符串的三种算法
题目:给定一个长度为n的字符串,将它向左旋转i个位置,例如,str = "abcdefg", n = 7, i = 3,则旋转后,str = "defgabc",要求空间复杂度为1。 一般,解旋转字符串这样的题目,最简单的做法即是先将前i个字符拷贝到临时空间,然后将后n - i个字符前移,最后再将临时空间中的数据拷贝到原字符串的后i个位置上。但这样做会额外浪费i个空间。现给出如下三种算法: •原创 2012-09-24 22:14:48 · 1899 阅读 · 2 评论