算法
ZHM977863924
这个作者很懒,什么都没留下…
展开
-
5亿个数找中位数
找中位数最容易想到的方法就是,先对序列进行排序,取中位数,然而5亿个数要想全部读入内存需要将近2GB空间。一种想法是采用外部排序的方法,在排序的过程中记录数据个数,找到中位数。首先采用hash() % 100,把数据分到100个文件中,然后对每个文件分别在内存中进行快速排序,再将100个小文件进行合并,并在合并过程中寻找中位数,时间复杂度是O(nlogn) 另外一种方法是,转载 2015-04-20 16:05:03 · 2798 阅读 · 0 评论 -
排序算法小结
从以下几个方面来比较排序算法:1. 算法的时间和空间复杂度2. 排序的稳定性3. 算法结构的复杂度4. 参加排序的数据规模排序的稳定性:稳定排序方法: 插入排序、冒泡排序、二路归并排序、基数排序是稳定排序算法;不稳定排序方法: 选择排序、谢尔排序、快速排序、堆积排序是不稳定排序算法。算法复杂度比较:转载 2015-04-27 10:21:06 · 726 阅读 · 0 评论 -
海量数据面试题----分而治之/hash映射 + hash统计 + 堆/快速/归并排序
1、从set/map谈到hashtable/hash_map/hash_set 稍后本文第二部分中将多次提到hash_map/hash_set,下面稍稍介绍下这些容器,以作为基础准备。一般来说,STL容器分两种: 序列式容器(vector/list/deque/stack/queue/heap), 关联式容器。关联式容器又分为set(集合)和map(转载 2015-04-20 16:05:40 · 918 阅读 · 0 评论