根据您的经验,用于处理非常大的列表(即数万个电子邮件地址)的排序和比较的最佳Web编程语言是什么?
我最熟悉PHP。我认为它可以完成工作,但我不确定其他语言,是否有可能有下注者。
谢谢!
答案 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-z
,0-9
,_
,.
等),因此trieNode只会包含这些字符。如果您还不知道trie,这个topcoder tutorial on trie是一个很好的起点。
你必须通过所有字符串来构建trie。
搜索/比较需要O(l)时间,其中l是您要比较的字符串的长度。
排序要求您使用DFS(深度优先搜索) - O(| V | + | E |)时间遍历特里树的所有trieNodes。
答案 5 :(得分:0)
你最快的将是一个已编译的cgi。