2010-06-17 2 views
5

Was ist nach Ihrer Erfahrung die beste Webprogrammiersprache für die Sortierung und den Vergleich sehr großer Listen (dh Zehntausende von E-Mail-Adressen)?Web Programmiersprache für sehr große Listen?

Ich bin am vertrautesten mit PHP. Ich denke, dass es die Arbeit erledigen könnte, aber ich bin anderer Sprachen unsicher, und wenn es einen wetten Verehrer geben könnte.

Danke!

+1

Welche Anwendung möchten Sie erstellen, die sich auf die Diskussion auswirken könnte? – Lazarus

+1

Wie oft müssen Sie diese Liste sortieren? Was wird es verwendet? Was * sonst * muss die Sprache tun? – jalf

+0

Die Absicht der Webanwendung ist es, E-Mail-Listen zu verwalten. Es muss nur alphabetisch sortiert werden. Das wird kein Problem sein, ich kann nur in der MySQL-Abfrage sortieren. Jetzt, wo ich darüber nachdenke, kann ich alles auf Datenbankebene machen. Zum Beispiel, wenn ich zwei Listen vergleiche, kann ich einfach eine Ansicht in der Datenbank erstellen ... – littleK

Antwort

15

Ich würde die E-Mails in einer Datenbank speichern und SQL verwenden, um Sortieren und Suchen durchzuführen. Dafür wurden Datenbanken entwickelt, und sie werden intelligente Lösungen haben, die alles übertreffen, was die meisten Menschen im Code schreiben könnten.

+3

Wenn Sie eine Lösung programmieren, werden die meisten Leistungsprobleme auf die Algorithmen zurückzuführen sein, die Sie zum Suchen/Sortieren verwenden. Dies hat einen weitaus größeren Einfluss auf die Leistung als die von Ihnen verwendete Sprache. –

+0

Macht Sinn. Ich werde die Datenbank verwenden, um die meisten Operationen durchzuführen. Vielen Dank! – littleK

1

Sprache spielt normalerweise keine Rolle TOO viel. Wählen Sie den aus, mit dem Sie sich am wohlsten fühlen.

Das Endprodukt wird durch den Erbauer, nicht die Werkzeuge geformt.

16

Kann die Sortierung innerhalb einer Datenbank durchgeführt werden? Sie sind so konzipiert, dass sie dynamisch sortiert und verglichen werden können. Ich würde vorschlagen, dass Sie zu einem Modell wechseln, mit dem die Datenbank diese Art von Aktivität ausführen kann.

Wenn Sie aus irgendeinem Grund wirklich keine DB verwenden können, sollten Sie sich auf Algorithmen über Sprachen konzentrieren. Wählen Sie eine Sprache basierend auf anderen Kriterien (persönliche Vertrautheit, unterstützt sie Ihre anderen Aufgaben, hat sie eine aktive Support-Community usw.) und ermitteln Sie den besten Algorithmus angesichts der Eigenarten dieser Sprache. Zum Beispiel hat PHP gemäß einigen der Diskussion in https://stackoverflow.com/questions/309300/defend-php-convince-me-it-isnt-horrible eine relativ schlechte Rekursionsleistung.

Aber im Ernst, verwenden Sie eine Datenbank dafür.

+0

Wird die Datenbank verwenden, danke! – littleK

2

Dies hängt nicht von der Programmiersprache ab, es hängt von der Logik ab, sei es Indizes oder Tabellenschemata und Caching-Mechanismus.

0

Ihre schnellste wäre eine kompilierte CGI.

+0

Dies wird aktualisiert. Das Schreiben effizienter Algorithmen in C würde das beste Ergebnis liefern. Es ist jedoch keine Sprache für die Programmierung im Internet. Aber zum Suchen und Sortieren ist es bei weitem das beste (unter der Annahme geeigneter Algorithmen). Die Verwendung einer Datenbank mit einer anderen realen Web-Programmiersprache wäre jedoch viel einfacher und würde das Problem höchstwahrscheinlich ausreichend lösen. – Kibbee

1

Sie können auch einen Trie verwenden, der eine Präfixbaum-Datenstruktur ist - zum Sortieren im Speicher.

E-Mail-Adressen haben restriktiven Zeichensatz (a-z, 0-9, _, . etc.), so dass die trieNode hätte nur diese Zeichen. Diese topcoder tutorial auf Trie ist ein guter Ausgangspunkt, wenn Sie nicht bereits über Trie wissen.

Sie müssen alle Strings durchlaufen, um den Trie zu konstruieren.

Suchen/Vergleich dauert O (l) Zeit, wobei l die Länge der Zeichenfolge ist, die Sie vergleichen.

Beim Sortieren müssen alle trieNodes des Trie-Baums mit DFS (Tiefensuche zuerst) - O (| V | + | E |) durchlaufen werden.

+0

Interessant. Ich werde einen Blick darauf werfen, danke! – littleK

+0

E-Mail-Adressen und Zeichensätze finden Sie unter http://www.regular-expressions.info/email.html – RCIX