algorithm - 按域均匀洗牌邮件地址列表

标签 algorithm language-agnostic

我有一个电子邮件地址列表,我想按域平均分配。

例如:

让列表成为,

a@a.com
b@a.com
c@a.com
a@b.com
b@b.com
c@c.com

输出应该是

a@a.com
a@b.com
c@c.com
b@a.com
b@b.com
c@a.com

源列表不像示例中那样按域排序,但如果有帮助,可以按域排序。执行此操作的有效(单次/两次通过?)算法是什么?

拉杰

最佳答案

当心假设每个域的电子邮件地址数量相同(或相似)的答案。

我试图解决本质上相同的问题,并且在我的博客上收到了很多讨论:First Article , Second Article

我们没有找到快速、最佳的解决方案,但是 fastest, close-enough solution (包括 Perl 源代码)来自 Aristotle Pagaltzis 的评论.

向亚里士多德致敬。

关于algorithm - 按域均匀洗牌邮件地址列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/283193/

相关文章:

python - 从 trie 中删除频率 < 5 和长度 > 15 的单词的算法

java - 在表中快速查找行的算法

language-agnostic - 开源专有软件涉及什么?

algorithm - 具有固定子集大小的 Sum-subset

architecture - "OAuth Provider"究竟是什么?

arrays - 查找清空数组的最小操作数

arrays - MATLAB 矩阵元素明智乘法优化

java - 我应该存储哈夫曼结果的什么类型的文件?

c++ - vector 中的移动元素未按预期工作

language-agnostic - "program to an interface"是什么意思?