Sortieren von 1 Million 8-stelligen Zahlen in 1 MB RAM

Ich habe einen computer mit 1 MB RAM und keine anderen lokalen Speicher. Ich muss es verwenden, nehmen Sie 1 million 8-stelligen Dezimalzahlen, die über eine TCP-Verbindung, Sortieren Sie Sie, und senden Sie dann die sortierte Liste über eine weitere TCP-Verbindung.

Die Liste der zahlen kann Duplikate enthalten, das muss ich nicht verwerfen. Der code wird in ROM, so brauche ich Sie nicht subtrahieren Sie die Größe von meinem code aus dem 1 MB. Ich habe bereits code-Laufwerk Ethernet-port und Griff TCP/IP-verbindungen, und es erfordert 2 KB den Zustand der Daten, einschließlich eines 1 KB Puffer über, die den code Lesen und schreiben von Daten. Gibt es eine Lösung für dieses problem?

Quellen In Frage Und Antwort:
slashdot.org

cleaton.net

Kommentar zu dem Problem
Ehm, eine million mal 8-stelligen Dezimalzahl (min. 27-bit-Ganzzahl, Binär -) > 1MB ram Kommentarautor: Mr47
1M RAM bedeutet 2^20 bytes? Und wie viele bits werden in ein byte auf dieser Architektur? Und die "Millionen" in "1 million 8-stellige Dezimalzahlen" eine SI-Millionen (10^6)? Was ist eine 8-stellige Dezimalzahl, die einer natürlichen Zahl < 10^8, eine rationale Zahl, deren Dezimaldarstellung dauert 8-stellig, ohne den Dezimalpunkt, oder etwas anderes? Kommentarautor:
1 Mio 8 dezimale zahlen oder 1 million 8-bit-zahlen? Kommentarautor: Patrick White
es erinnert mich an einen Artikel in "Dr. Dobb ' s Journal" (irgendwo zwischen 1998-2001), wo der Autor verwendet eine insertion sort zum Sortieren von Telefonnummern, wie er war, Sie zu Lesen: das war das erste mal, dass ich erkannte, dass, manchmal, ein langsamer Algorithmus schneller... Kommentarautor: Adrien Plisson
Es gibt eine andere Lösung, niemand hat noch erwähnt: Kauf von hardware mit 2MB RAM. Es sollte nicht sehr viel teurer sein, und es wird das problem viel, viel einfacher zu lösen. Kommentarautor: Daniel Wagner

InformationsquelleAutor der Frage |

Schreibe einen Kommentar