2011-11-13 1 views
-1

Comment inverser les lignes d'un énorme fichier texte efficacement avec la mémoire principale limitée? Qu'est-ce qu'un algorithme efficace à utiliser?Comment faire pour inverser les lignes d'un fichier énorme efficacement avec la mémoire principale limitée

+0

Quels sont les types de langage de programmation que vous souhaitez utiliser? – Daryl

+0

@Daryl: est-ce important? Je suppose implicitement la lecture séquentielle du fichier texte et la lenteur des E/S. J'ai donc besoin de limiter autant que possible les opérations d'E/S. –

Répondre

0

Je ne sais pas exactement ce que vous voulez faire, mais jetez un oeil aux commandes rev et tac (si vous êtes sur un système qui en a).

+0

Comme je l'ai dit, ce n'est pas une question sur "quel outil je peux y parvenir". Au contraire, il s'agit d'une question sur "quel algorithme je peux utiliser pour le faire". Merci. –

2

Doit commencer à lire à la fin du fichier, puis revenir en arrière tout en haut.

Vous pouvez lire le fichier un caractère à la fois en arrière. Cache/enregistre tous les caractères jusqu'à ce que vous atteigniez un retour chariot. Inversez la chaîne collectée et créez-en une ligne.

+0

Est-ce le moyen le plus efficace? Veuillez noter que je suis plutôt limité en mémoire. –

Questions connexes