Heim >Backend-Entwicklung >PHP-Tutorial >Interviewfrage: Sortieren Sie bei 256 MB Speicher eine 10G-Datei (eine Zahl pro Zeile in der Datei).

Interviewfrage: Sortieren Sie bei 256 MB Speicher eine 10G-Datei (eine Zahl pro Zeile in der Datei).

WBOY
WBOYOriginal
2016-08-10 09:07:185536Durchsuche

Wie sortiere ich 10G-Dateien bei 256 MB Speicher (eine Zahl pro Zeile in der Datei)? Wie durchsuche ich eine 10G-Datei? So zählen Sie die Anzahl der Vorkommen jedes Schlüsselworts in einer 10G-Datei

Antwortinhalt:

Wie sortiere ich 10G-Dateien bei 256 MB Speicher (eine Zahl pro Zeile in der Datei)? Wie durchsuche ich eine 10G-Datei? So zählen Sie die Anzahl der Vorkommen jedes Schlüsselworts in einer 10G-Datei

Zeit gegen Speicherplatz austauschen
Die spezifische Implementierung besteht darin, Dateien stapelweise zu laden und dann zu berechnen

Java? Die Idee, Nio und Mapreduce zu verwenden

Ich verstehe nichtphp, aber diese Frage kommt mir bekannt vor.
Sagen Sie mir Ihre Gedanken.
1. Implementierung der Sortierung
Dies ist ein typisches Problem der Einzelmaschinen-Außensortierung. Die spezifische Methode besteht darin, 先分块进行排序 und dann 多路归并 in die Ausgabedatei einzufügen.
2. Suche
Wenn die Datei nicht verarbeitet werden kann, kann sie nur durch Durchsuchen durchsucht werden.
Wenn die Dateien verarbeitet werden können, wurden die Dateien oben sortiert und Sie können fortfahren二分查找.
3. Statistiken
Wenn die Datei nicht verarbeitet werden kann, bleibt keine andere Möglichkeit, als sie einmal zu durchlaufen.
Wenn die Sequenz erfasst wurde, können Sie direkt eine binäre Suche durchführen. Suchen Sie an beiden Enden nach der Anzahl der Vorkommen an der gefundenen Position.

Sie können das Buch „Programming Pearls“ lesen, dort scheint dieses Problem zu bestehen.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn