考试题1:处理以下文件内容,将域名取出并根据域名进行计数排序处理:(百度和sohu面试题)oldboy.loghttp://www.etiantian.org/index.htmlhttp://www.etiantian.org/1.htmlhttp://post.etiantian.org/ind...
分类:
编程语言 时间:
2015-09-28 22:17:05
阅读次数:
174
1. 比较排序算法的下界 (1) 比较排序 到目前为止,我们已经介绍了几种能在O(nlgn)时间内排序n个数的算法:归并排序和堆排序达到了最坏情况下的上界;快速排序在平均情况下达到该上界。 如果仔细观察,我们会发现:在排序的最终结果中,各元素之间的次序依赖于它们之间的比较。我们把这类排序算法统称为比...
分类:
编程语言 时间:
2015-09-23 19:25:12
阅读次数:
233
稳定排序:*泡沫排序(bubble sort)— O(n²)*插入排序 (insertion sort)— O(n²)*桶排序 (bucket sort)— O(n);需要O(k)额外空间*计数排序(counting sort) — O(n+k);需要O(n+k)额外空间*合并排序 (merge s...
分类:
编程语言 时间:
2015-09-22 14:21:28
阅读次数:
280
计数排序是一种能够达到运行时间能够线性时间θ(n)的排序算法。在排序算法里算是最快的算法之一,当然,他有很强烈的前提。下面开始介绍一下技术排序(Counting Sort)。算法思想计数排序假设n个输入元素中的每一个都是介于0到k之间的整数,此处k为某个整数。这样可以用一个数组C[0..k]来记录待排序数组里元素的数量。当k=O(n)时,计数排序的运行时间为θ(n).
注:关于C[0..k],用...
分类:
编程语言 时间:
2015-09-18 12:03:25
阅读次数:
209
int count[256];void count_sort(char str[]){ int length=strlen(str); char *result=new char[length+1]; for(int i=0;i<length;++i){ count[...
分类:
编程语言 时间:
2015-09-12 16:11:51
阅读次数:
207
今天想在网上找一个实现好的er算法来着,没啥具体的资料,无奈只能看vlfeat的mser源码,看能不能修修补补实现个er。于是,看到某一段感觉很神奇,于是放下写代码,跑来写博客,也就是这段 1 /* --------------------------------------------------...
分类:
编程语言 时间:
2015-09-10 19:33:00
阅读次数:
235
后缀数组又被称为字符串处理神器;http://blog.csdn.net/xymscau/article/details/8798046 这里讲的非常好实现rank排名是用到了倍增法和一个比较神奇的计数排序,时间复杂度是nlongnheight[i]存放的是排名第i的后缀与排名第i-1的后缀的最长前...
分类:
编程语言 时间:
2015-09-04 18:32:51
阅读次数:
186
编程之美有一道考察多种排序的题目,题目如下:
有一个长度为N的无序数组,假定其中的每一个元素都各不相等,求其中最大的K个数。
作者对于此题目结合各种排序算法给出了五种解法思路。
解法一:
使用快速排序或堆排序对它们元素进行排序,整个排序的时间复杂度为O(N*log2{log}_2N),然后取出前K个,时间复杂度为O(K),总时间复杂度O(N*log2{log}_2N)+O(K)=O(N*l...
分类:
其他好文 时间:
2015-09-02 02:06:37
阅读次数:
277
排序:对一序列对象根据某个关键字进行排序;
稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;
例如:插入排序、冒泡排序、归并排序、计数排序、基数排序、桶排序
不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;
例如:选择排序(5 8 5 2 9)、快速排序、堆排序
内排序:不占用额外内...
分类:
编程语言 时间:
2015-08-16 23:12:27
阅读次数:
172