Язык веб-программирования для очень больших списков?


По вашему опыту, какой лучший язык веб-программирования используется для сортировки и сравнения очень больших списков (т.Е. десятков тысяч адресов электронной почты)?

Я лучше всего знаком с PHP. Я думаю, что это могло бы выполнить работу, но я не уверен в других языках и в том, может ли быть претендент на пари.

Спасибо!

 5
Author: littleK, 2010-06-17

6 answers

Я бы хранил электронные письма в базе данных и использовал SQL для выполнения сортировки и поиска. Именно для этого и были созданы базы данных, и у них будут интеллектуальные решения, которые превзойдут все, что большинство людей могли бы написать в коде.

 15
Author: Tom Gullen, 2010-06-17 15:37:52

Можно ли выполнить сортировку внутри базы данных? Они предназначены для динамической сортировки и сравнения. Я бы посоветовал вам перейти к модели, которая позволяет БД обрабатывать такого рода действия.

Если вы действительно по какой-то причине не можете использовать БД, вам следует сосредоточиться на алгоритмах, а не на языках. Выберите язык на основе других критериев (личное знакомство, поддерживает ли он другие ваши задачи, есть ли у него активное сообщество поддержки и т. Д. и т. Д.) И определите лучший алгоритм, учитывая причуды этого языка. Например, согласно некоторым обсуждениям в https://stackoverflow.com/questions/309300/defend-php-convince-me-it-isnt-horrible , PHP имеет относительно низкую производительность рекурсии.

Но серьезно, используйте для этого базу данных.

 16
Author: slifty, 2017-05-23 12:18:36

Это не зависит от языка программирования, это зависит от логики, скажем, будь то индексы или схемы таблиц и механизм кэширования.

 2
Author: Srinivas Reddy Thatiparthy, 2010-06-17 15:36:59

Язык обычно не имеет большого значения СЛИШКОМ. Выберите тот, с которым вам больше всего комфортно.

Конечный продукт формируется разработчиком, а не инструментами.

 1
Author: samoz, 2010-06-17 15:36:12

Вы также можете использовать trie, который представляет собой структуру данных префиксного дерева - для сортировки в памяти.

Адреса электронной почты имеют ограничительный набор символов (a-z, 0-9, _, . и т.д.), поэтому в триеноде будут только эти символы. Этот учебник по topcoder по trie является хорошей отправной точкой, если вы еще не знаете о trie.

Вам нужно пройти через все строки, чтобы построить три.

Поиск/сравнение занимает O(l) времени, где l - длина строка, которую вы сравниваете.

Сортировка требует, чтобы вы пересекли все триноды дерева trie, используя DFS (поиск по глубине) - O(|V|+ |E|) время.

 1
Author: hIpPy, 2010-06-17 16:06:33

Самым быстрым будет скомпилированный cgi.

 0
Author: Babiker, 2010-06-17 15:37:08