题目链接:点击进入
先考虑两个数组A,B的情况,这样总共有n^2种情况;将A,B数组排序后,我们可以将所有情况组织成n张表:
表1: A[1]+B[1]<=A[1]+B[2]<=……<=A[1]+B[n].
表2: A[2]+B[1]<=A[2]+B[2]<=…….<=A[2]+B[n].
…….
表n: A[n]+B[1]<=A[n]+B[2]<=……..<=A[n]+B[n]
这n张...
分类:
其他好文 时间:
2015-06-13 14:17:31
阅读次数:
145
分8个线程对800万个数据分别排序,等所有线程排完序之后,进行简单的多路归并。这和外排的多路归并是一样的,也可以使用优化的胜者树算法。 ``` #include #include #include #include #include using namespace s...
分类:
编程语言 时间:
2015-03-21 12:46:29
阅读次数:
198
考虑一个简单的问题,两个长度为n的有序数组A和B,从每个数组中各选出一个数相加,共n2中情况,求最小的n个数。将这n2个数拆成n个有序表:A1+B1≤A1+B2≤...A2+B1≤A2+B2≤......An+B1≤An+B2≤...然后用优先队列合并成一个有序表即可。队列中需要记录两个数的和s,以...
分类:
其他好文 时间:
2015-03-16 16:10:15
阅读次数:
129
将多个有序表合并成一个有序表就是多路归并问题,可用优先队列来解决。 1 #include 2 #include 3 using namespace std; 4 5 const int maxn = 1000 + 10; 6 7 struct Node 8 { 9 int time,...
分类:
其他好文 时间:
2015-03-15 21:14:23
阅读次数:
166
Problem KK Smallest SumsYou're given k arrays, each array has k integers. There are kk ways to pick exactly one element in each array and calculate th...
分类:
其他好文 时间:
2015-03-15 13:45:14
阅读次数:
228
#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define pii pair#d...
分类:
其他好文 时间:
2015-02-09 12:26:49
阅读次数:
117
算法入门经典 训练指南 p189#include#include#include#include#includeusing namespace std;struct Item{ int s,b; Item(int s,int b) :s(s),b(b) {} bool operat...
分类:
其他好文 时间:
2015-01-30 17:21:12
阅读次数:
135
Merge k Sorted ListsMergeksorted linked lists and return it as one sorted list. Analyze and describe its complexity.多路归并。1、用make_heap函数维护一个大小为k的最小堆。注:...
分类:
其他好文 时间:
2014-12-20 11:34:12
阅读次数:
163
项目需要实现一个败者树,今天研究了一下,附上实现代码。几点说明:1. 败者树思想及实现参考这里:http://www.cnblogs.com/benjamin-t/p/3325401.html2. 多路归并中的“多路”的容器使用的是C语言数组 + 数组长度的实现(即const ContainerTy...
分类:
编程语言 时间:
2014-10-17 23:06:21
阅读次数:
380