猿问

在 GO 中处理大内存块

是否有任何指南描述 Go 如何有效地解决以下用例:

  1. 应用程序接收由分隔名称组成的 100M 字符串,每个名称最长为 1M。例如:“Ben;Aaron;Rich;Donna...”。需要按字母顺序打印出相同的名称而不会显着增加内存使用量(假设总共使用了 150M RAM)

  2. 给定两个具有巨大内存块的集合(假设每个集合最多 1M)并且需要有效地将几个块从一个集合移动到另一个集合(无需大量额外的内存分配)


白板的微信
浏览 156回答 1
1回答

长风秋雁

我假设您无法修改字符串,因此字符串和字符串是不可变的(不是 []byte),因为删除任何此类限制会使任务变得微不足道。如果是这样,那么您可以创建带有字符串索引的附加结构并对其进行排序 (n*log(n)) 时间。只需Less以一种比较原始字符串中的子字符串的方式实现即可。第二个是微不足道的 - 只需使用链表。
随时随地看视频慕课网APP

相关分类

Go
我要回答