关于海量数据的问题,网上大多都是查询前N条,或出现次数比较多的前N条等。基于此,有:1)、使用Trie树或哈希表进行统计次数;2)、使用快排、堆或归并进行排序。3)、当然,还可以先进行哈希取模,将数据量变小,之后重复1)与2)即可,最后归并。大致就这些方法,当然说得很容易,做起来有点难度,如Trie...
分类:
其他好文 时间:
2014-10-06 17:16:50
阅读次数:
127
Java算法学习-----------------归并排序算法...
分类:
编程语言 时间:
2014-10-05 12:44:28
阅读次数:
185
基本枚举、贪心、递归、分治、递推、模拟STL(pair、vector、set、map、queue、string、algorithm)构造、位运算、常数优化数据结构队列、堆、栈、链表排序(插入、冒泡、快速、归并、堆、桶、基数)二分查找、散列表并查集、哈夫曼树排序二叉树、左偏树、平衡树(Splay/Tr...
分类:
其他好文 时间:
2014-10-05 11:03:18
阅读次数:
276
java实现package sort;public class MergeSort { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated ...
分类:
其他好文 时间:
2014-10-02 16:43:53
阅读次数:
246
线段树(interval tree) 是把区间逐次二分得到的一树状结构,它反映了包括归并排序在内的很多分治算法的问题求解方式。
上图是一棵典型的线段树,它对区间[1,10]进行分割,直到单个点。这棵树的特点
是:
1. 每一层都是区间[a, b]的一个划分,记 L = b - a
2. 一共有log2L层
3. 给定一个点p,从根到叶子p上的所有区间都包含点p,且其他区间都不包...
分类:
其他好文 时间:
2014-10-02 09:14:52
阅读次数:
196
求逆序数
时间限制:2000 ms | 内存限制:65535 KB
难度:5
描述
在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。
现在,给你一个N个元素的序列,请你判断出它的逆序数是多少。
比如 1 3 2 的逆序数就是1。
输入第一行输入一个...
分类:
其他好文 时间:
2014-10-01 19:33:21
阅读次数:
151
hi,主要注意两点:1、如果只用一份传入的临时数组,在merge的最后,要把所有元素,copy回原数组;2、逆序数计算的时候low2-i,而不是low2-low1其实还可以做一点优化,就是在merge函数里,后半段如果没结束,可以不用copy到临时数组,然后从临时数组,copy回原数组的时候,可以..
分类:
其他好文 时间:
2014-09-30 04:56:32
阅读次数:
206
归并排序基本思想:将两个或两个以上的有序子序列“归并”为一个有序子序列。在内部排序中,通常采用的是2-路归并排序,即将两个位置相邻的有序子序列“归并”为一个有序序列。类似于快排,其使用的也是分治的策略。二路归并排序基本思想:将有n个记录的原始序列看做n个有序子..
分类:
其他好文 时间:
2014-09-30 04:38:12
阅读次数:
191
#includeusing namespace std;void Merge(int a[],int b[],int first,int mid,int last)//合并两个有序数组{ int p=first,q=mid+1; int pos=first; while(p<=mid&&q<=las...
分类:
其他好文 时间:
2014-09-29 23:36:11
阅读次数:
487