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