Redian新闻
>
大量字串的排序问题。可能不一定有解
avatar
大量字串的排序问题。可能不一定有解# JobHunting - 待字闺中
e*9
1
假设有1M个字串,字串的平均长度1MB,需要对这些字串做排序。
因为字串会有变动,而且对排序速度有要求,所以基于写文件的merge sort不适用。
如果直接load到内存,至少需要1TB的内存。
之前想到的是算每个字串的hash值,然后直把hash load到内存中做树或者堆排序,这
样可以减少内存的消耗。但是一般的hash函数会改变原来的排序,所以这个地方会有问题
有没有什么比较好的排序方式?
avatar
p*2
2

问题
distributed?

【在 e****9 的大作中提到】
: 假设有1M个字串,字串的平均长度1MB,需要对这些字串做排序。
: 因为字串会有变动,而且对排序速度有要求,所以基于写文件的merge sort不适用。
: 如果直接load到内存,至少需要1TB的内存。
: 之前想到的是算每个字串的hash值,然后直把hash load到内存中做树或者堆排序,这
: 样可以减少内存的消耗。但是一般的hash函数会改变原来的排序,所以这个地方会有问题
: 有没有什么比较好的排序方式?

avatar
f*e
3
考古“海量贴”,存成以头两个字母为名字的文件"ab.txt","bc.txt"然后用trie
对每个文件进行排序。

问题

【在 e****9 的大作中提到】
: 假设有1M个字串,字串的平均长度1MB,需要对这些字串做排序。
: 因为字串会有变动,而且对排序速度有要求,所以基于写文件的merge sort不适用。
: 如果直接load到内存,至少需要1TB的内存。
: 之前想到的是算每个字串的hash值,然后直把hash load到内存中做树或者堆排序,这
: 样可以减少内存的消耗。但是一般的hash函数会改变原来的排序,所以这个地方会有问题
: 有没有什么比较好的排序方式?

avatar
p*2
4

貌似LZ对速度有要求,而且字符串可能会变动的

【在 f*****e 的大作中提到】
: 考古“海量贴”,存成以头两个字母为名字的文件"ab.txt","bc.txt"然后用trie
: 对每个文件进行排序。
:
: 问题

avatar
e*9
5
因为字串多并且可能变化,所以外排序都不可以用。
现在考虑的就是有没有可能有什么hash函数,hash之后不改变原来的排序。
就是hash("abc") < hash("bac") < hash("cab")
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。