栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何排序价值100GB的字符串

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何排序价值100GB的字符串

我基本上是在重复Krystian的回答,但在阐述:

是的,您需要或多或少就地执行此操作,因为您的可用RAM很少。但是,仅仅由于移动字符串的成本,在这里进行幼稚的就地排序将是一场灾难。

而不是实际移动弦乐,只需跟踪哪些弦乐应与其他弦乐交换,并最终将它们一次移动到最终位置。也就是说,如果您有1000个字符串,请组成一个1000个整数的数组。array
[i]是字符串i应该结束的位置。如果结尾的array [17] == 133,则意味着字符串17应该在字符串133的结尾处结束。array [i] ==
i,所有i都开始。那么,交换字符串只是交换两个整数的问题。

然后,任何类似quicksort的就地算法都可以很好地工作。

运行时间肯定取决于琴弦的最终移动。假设每个动作,您在合理大小的写入中移动了大约100GB的数据。我可能认为驱动器/控制器/操作系统可以为您移动约100MB
/秒。那么,大约1000秒?20分钟?

但是它适合内存吗?您有100GB的字符串,每个字符串为256个字节。多少弦?100 * 2 ^ 30/2 ^8,或大约419M字符串。您需要419M个整数,每个整数为4个字节,约合1.7GB。Voila,适合您的2GB。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/428181.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号