用于非常大的列表的Web编程语言?

时间:2010-06-17 15:34:43

标签: php size

根据您的经验,用于处理非常大的列表(即数万个电子邮件地址)的排序和比较的最佳Web编程语言是什么?

我最熟悉PHP。我认为它可以完成工作,但我不确定其他语言,是否有可能有下注者。

谢谢!

6 个答案:

答案 0 :(得分:16)

是否可以在数据库内进行排序?它们旨在进行动态排序和比较。我建议你转移到一个模型,让数据库处理这种活动。

如果由于某些原因确实无法使用数据库,那么您应该专注于语言算法。选择一种基于其他标准的语言(个人熟悉,它是否支持您的其他任务,是否有活跃的支持社区等)并根据语言的怪癖找出最佳算法。例如,根据https://stackoverflow.com/questions/309300/defend-php-convince-me-it-isnt-horrible中的一些讨论,PHP的递归性能相对较差。

但严重的是,请使用数据库。

答案 1 :(得分:15)

我会将电子邮件存储在数据库中,并使用SQL执行排序和搜索。这就是数据库的设计目标,他们将拥有超越大多数人可以用代码编写的智能解决方案。

答案 2 :(得分:2)

这不依赖于编程语言,它取决于逻辑,假设它是索引或表模式和缓存机制。

答案 3 :(得分:1)

语言通常无关紧要 TOO 。选择一个你最舒服的人。

最终产品由建造者而不是工具塑造。

答案 4 :(得分:1)

您还可以使用trie作为前缀树数据结构 - 用于在内存中进行排序。

电子邮件地址具有限制性字符集(a-z0-9_.等),因此trieNode只会包含这些字符。如果您还不知道trie,这个topcoder tutorial on trie是一个很好的起点。

你必须通过所有字符串来构建trie。

搜索/比较需要O(l)时间,其中l是您要比较的字符串的长度。

排序要求您使用DFS(深度优先搜索) - O(| V | + | E |)时间遍历特里树的所有trieNodes。

答案 5 :(得分:0)

你最快的将是一个已编译的cgi。