UNIX sort
命令可以对非常大的文件进行排序,如下所示:
sort large_file
排序算法如何实现?
它怎么不会导致过多的内存消耗?
这是有趣的。我真的不知道它是如何工作的,但是我有一个猜测。可能会将每个键的第一个字符放入二叉树中,并且在发生冲突时,它还会使用键的下一个字符,因此它不会保存过多的键。然后,它可以使用每个键将偏移量保存到文件中,以便可以查找并按顺序打印每一行。
—
Zifre
实际上,@ ayaz如果您不是在磁盘上而是在管道中对文件进行排序,会更有趣,因为它很明显您不能简单地对输入数据进行多次传递。
—
tvanfosson,2009年
@Neil-从上下文看来,他似乎在试图对文件的内容而不是文件名(对于一个名称没有意义)进行排序。我只是想改善问题,而又不会过多地更改上下文,这样,由于一个简单的错误,它将得到答案而不是否决票。
—
tvanfosson,2009年