import java.util.ArrayList;import
java.util.Arrays;import java.util.List;import java.util.regex.Pattern;/** * *
在线性时间内抽取主题类(新闻、博客等)网页的正文。 采用了基于行块分布函数....
分类:
其他好文 时间:
2014-06-29 07:45:25
阅读次数:
283
排序算法是我们工作中使用最普遍的算法,常见的语言库中基本都会有排序算法的实现,比如c标准库的qsort,stl的sort函数等。本文首先介绍直接插入排序,归并排序,堆排序,快速排序和基数排序等比较排序算法,然后介绍计数排序,基数排序等具有线性时间的排序算法。本文主要讨论算法的实现方法,并不会过多介绍...
分类:
其他好文 时间:
2014-06-07 21:23:31
阅读次数:
348
6. 线性时间排序
6.1 计数排序
我们之前介绍的所有排序算法,都需要依次比较输入元素之间的大小,有些甚至需要重复比较多次,我们将这一列算法统称为比较排序。
接下来,我们将讨论三种以线性时间运行的排序算法,分别是计数排序、基数排序和桶排序,这些算法都用非比较的操作来确定排序的顺序。
计数排序,该算法的基本思路是,对于某一个元素,已知数组中比该元素小的元素的个数为,则可将该元素放置在的位置上。PS:当有相同元素时,此方案需要做一些特殊处理。...
分类:
其他好文 时间:
2014-06-07 12:23:07
阅读次数:
217
1.vector
vector是数组的一种类表示,它提供了自动内存管理功能,可以动态的改变vector对象的长度,并随着元素的添加和删除而增大和缩小,它提供了对元素的随机访问,在尾部添加和删除元素的时间是固定的。但是在头部或者中间插入和删除元素的复杂度是线性时间。(足以说明vector是数组。插入
...
分类:
其他好文 时间:
2014-06-07 04:43:51
阅读次数:
216
第一种实现是以O(N3) 即以n的三次方实现的,这个算法很简单,想法特别明显第二种以O(N2)
即以n的二次方实现,算法简单,但是仍然不够好第三种 O(N*log(N))
,以n乘以log(N),采取分治法解决问题,当然也采取了递归的思想。第四种O(N),这个方法就无敌了,线性时间,如果数组是在磁盘...
分类:
其他好文 时间:
2014-05-28 22:43:28
阅读次数:
295
出题:预先输入一个整型数组,数组中有正数也有负数;数组中连续一个或者多个整数组成一个子数组,每个子数组有一个和;求所有子数组中和的最大值,要求时间复杂度O(n);分析:时间复杂度为线性表明只允许一遍扫描,当然如果最终的最大值为0表明所有元素都是负数,可以用线性时间O(N)查找最大的元素。具体算法策略...
分类:
其他好文 时间:
2014-05-18 20:21:35
阅读次数:
339
好题,字符串,线性时间。
我觉得第一次拿到这个题的人应该不会知道该怎么做吧,要么就是我太弱了。。先搞清楚这个题要求的是什么。从一个长字符串中找一个字串,这个字串中的字符完全包含了另一个给定目标串中的字符,且这个字串的长度要求最小。还有一个非常重要的简化,题干指明了要求这种最短字串只有一个,这个限制其实暗示了这道题的整体思路,只要找到一个长串,然后缩减到不能缩减即可。
从题目的要求出发可以发现,...
挺有意思的一道题目,属于我之前没有总结到的情况,他在修改数组的时候用到了第三个指针。
如果是两种颜色的话,大家肯定都会做,直接一头一尾两个指针,扫描到不属于自己同类的就互换。这个题有了第三者,怎样来解决这个问题呢?想一下在一个数组中,怎样才能做到线性时间的修改,必须一次性或者常数性的把当前元素替换到他最终应该待的位置,要么复杂就上去了。那当前元素应该呆在那里呢?如果是0的话,应该呆在数组前面都是...
分类:
其他好文 时间:
2014-05-11 06:44:31
阅读次数:
259
原题地址:http://www.cnblogs.com/x1957/p/3373994.html题意:Given
an array of integers, every element appearstwiceexcept for one. Find that single
one.要求:线性时间复...
分类:
编程语言 时间:
2014-05-10 05:22:27
阅读次数:
408
很难的问题,数组线性时间。
属于我之前说的解法的借助辅助空间。给定两个柱子,他们之间的面积由什么确定呢?没错,他们之间的距离和他们之间最矮的那个柱子的高度。我们并不知道这个柱子在什么位置,所以...
分类:
其他好文 时间:
2014-05-09 22:57:18
阅读次数:
404