由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 合并two big sorted files
相关主题
两道algorithm电面题(update 答案)一个小公司面经
大文件去重复,有什么好办法么请教bloomberg 问题, 有关sorting
如何处理几个文件的合并排序问题anybody remember this question?? (about sorting)
A家面试题算法问题,m*m matrix
为啥各公司都爱考最没用的排序?有A[i]
一个NxN矩阵每行每列都sort好,如何排序?[算法] unsorted array
一个特别的inplace merge two sorted arraysc/c++ qsort/sort 来 sort array of string
问个经典问题的improvement电面了个公司,感觉很不好
相关话题的讨论汇总
话题: io话题: 文件话题: sort话题: cpu话题: 负责
进入JobHunting版参与讨论
1 (共1页)
x*****0
发帖数: 452
1
有两个很大的排好序的文件(不能放进内存),目标就是合并这两个文件。例如:
File 1:
beer
coke
redbull
File2:
cheeseburger
sandwich
taco
The output file should be:
beer
cheeseburger
coke
redbull
sandwich
taco
这道题最直接的思路当然就是一行行的读然后比较。请问有什么办法可以加速的吗?
s***c
发帖数: 639
2
external sort

【在 x*****0 的大作中提到】
: 有两个很大的排好序的文件(不能放进内存),目标就是合并这两个文件。例如:
: File 1:
: beer
: coke
: redbull
: File2:
: cheeseburger
: sandwich
: taco
: The output file should be:

x*******9
发帖数: 138
3
每次读文件都需要sys call,我们可以通过batching,即一次读多行来averaging这个
复杂度。
读写文件都是IO操作,排序是CPU操作,可以通过multi-thread或者asynchronous来提
高CPU利用率。
然后可以换用SSD获取更高的IO效率。不过顺序读的话,效果不大。
没想到别的了。求大神指点 。
x*****0
发帖数: 452
4
"读写文件都是IO操作,排序是CPU操作,可以通过multi-thread或者asynchronous来提
高CPU利用率"
请问是指:一个线程负责IO,再开一个线程负责排序吗?

【在 x*******9 的大作中提到】
: 每次读文件都需要sys call,我们可以通过batching,即一次读多行来averaging这个
: 复杂度。
: 读写文件都是IO操作,排序是CPU操作,可以通过multi-thread或者asynchronous来提
: 高CPU利用率。
: 然后可以换用SSD获取更高的IO效率。不过顺序读的话,效果不大。
: 没想到别的了。求大神指点 。

x*****0
发帖数: 452
5
"读写文件都是IO操作,排序是CPU操作,可以通过multi-thread或者asynchronous来提
高CPU利用率"
请问是指:一个线程负责IO,再开一个线程负责排序吗?

【在 x*******9 的大作中提到】
: 每次读文件都需要sys call,我们可以通过batching,即一次读多行来averaging这个
: 复杂度。
: 读写文件都是IO操作,排序是CPU操作,可以通过multi-thread或者asynchronous来提
: 高CPU利用率。
: 然后可以换用SSD获取更高的IO效率。不过顺序读的话,效果不大。
: 没想到别的了。求大神指点 。

A*******e
发帖数: 2419
6
两路归并,你还想咋样?

【在 x*****0 的大作中提到】
: 有两个很大的排好序的文件(不能放进内存),目标就是合并这两个文件。例如:
: File 1:
: beer
: coke
: redbull
: File2:
: cheeseburger
: sandwich
: taco
: The output file should be:

x*****0
发帖数: 452
7
其实就想看看多线程处理,比如一个线程负责io,一个负责sort,能不能speed up

【在 A*******e 的大作中提到】
: 两路归并,你还想咋样?
l******s
发帖数: 3045
8
那个“不能放进内存“的说明如何允许你同时做以下的多线程?

【在 x*****0 的大作中提到】
: 其实就想看看多线程处理,比如一个线程负责io,一个负责sort,能不能speed up
x*****0
发帖数: 452
9
不知道这样行不行。不能全部放入内存,但是可以部分放入内存。
三个buffer,其中两个负责存储分别从文件中
读来的数据(每次读整个buffer size的数据),
另一个负责存储sort结果。
开一个线程负责两个buffer的读,并且排序。
开另一个线程负责写第三个buffer(一旦满了以后)中的数据到结果文件中,
并且负责清空。

【在 l******s 的大作中提到】
: 那个“不能放进内存“的说明如何允许你同时做以下的多线程?
D***r
发帖数: 7511
10
我遇到过类似问题
说有些数需要排序,但是需要的空间是最大内存的十倍,应该怎么办
l******s
发帖数: 3045
11
how about idea of Merge Sort

【在 D***r 的大作中提到】
: 我遇到过类似问题
: 说有些数需要排序,但是需要的空间是最大内存的十倍,应该怎么办

x*****0
发帖数: 452
12
external sort 应该可以

【在 D***r 的大作中提到】
: 我遇到过类似问题
: 说有些数需要排序,但是需要的空间是最大内存的十倍,应该怎么办

D***r
发帖数: 7511
13
对,我那个时候学识浅,不知道external sort
但是也想到了分批sort然后写入外存,然后再merge,意思是一样的
然后他就问怎么从文件里读一部分数据什么的

【在 x*****0 的大作中提到】
: external sort 应该可以
n*******s
发帖数: 17267
14
这是让你买MapReduce的门票吗?
既然文件都很大, 是不是可以按26个字母把每个文件先chop, chop, 然后多进程搞搞?
1 (共1页)
进入JobHunting版参与讨论
相关主题
电面了个公司,感觉很不好为啥各公司都爱考最没用的排序?
问一道老题一个NxN矩阵每行每列都sort好,如何排序?
问个google面试题一个特别的inplace merge two sorted arrays
数组中找和为0的3个数,4个数问个经典问题的improvement
两道algorithm电面题(update 答案)一个小公司面经
大文件去重复,有什么好办法么请教bloomberg 问题, 有关sorting
如何处理几个文件的合并排序问题anybody remember this question?? (about sorting)
A家面试题算法问题,m*m matrix
相关话题的讨论汇总
话题: io话题: 文件话题: sort话题: cpu话题: 负责