La primera línea contiene el valor del número 'N' seguido de varias líneas. Podría resolverlo en orden de algoritmo n^2. ¿Alguien puede sugerir uno mejor?¿Cómo encontrar N líneas más largas en un archivo de texto e imprimirlas en stdout?
5
A
Respuesta
7
Puede utilizar un mínimo-montón y hacerlo en O (n * (log (N))):
heap = new Min-Heap(N) foreach line in text: if length(line) > heap.min(): heap.pop() heap.insert(line) foreach line in heap: print to stdout: line.
también podría hacerse en O (n) usando Select (N) (que selecciona el N-ésimo número) seguido de una partición alrededor del N-ésimo número (que ordena todos los que tienen un tamaño mayor o igual al N-ésimo número de un lado).
i = Select(lines, N) partition(lines, i) for i to size(lines): print to stdout: lines[i]
Cuestiones relacionadas
- 1. Las líneas más largas en la leyenda()
- 2. ¿Cómo leo líneas largas desde un archivo de texto en C++?
- 3. Enrollar automáticamente las líneas largas en VIM
- 4. C# ¿Cómo cuento las líneas en un archivo de texto
- 5. Utilidad para encontrar cadenas repetidas lo más largas posible
- 6. Ajustar líneas largas en Python
- 7. Cómo unir las primeras n líneas en un archivo
- 8. ¿Encontrar las secuencias k-más largas en una matriz unidimensional?
- 9. ¿Lees las últimas n líneas de un archivo en Ruby?
- 10. Ajustar líneas largas en .vimrc
- 11. marcar líneas largas en eclipse
- 12. Vim: formateo automático de líneas largas largas
- 13. ¿Cómo leo líneas en un archivo de texto en OCaml?
- 14. Vim, líneas largas y desplazamiento
- 15. ¿Cómo encontrar líneas únicas en un archivo de texto desde la línea de comandos?
- 16. Encontrar los valores más altos de n en un mapa
- 17. ¿Cómo dividir largas líneas de código en C++?
- 18. ¿Busca un archivo de texto e imprime líneas relacionadas en Python?
- 19. ¿Cómo dividir un archivo de texto grande en archivos más pequeños con igual cantidad de líneas?
- 20. ¿Cómo encontrar líneas que contengan más de un solo espacio en blanco entre cadenas en Unix?
- 21. Java: lea las últimas n líneas de un archivo ENORME
- 22. ¿Cómo marcar la ruptura de líneas largas?
- 23. Envoltura de líneas de código: cómo manejar líneas largas
- 24. Expresión regular para dividir cadenas largas en varias líneas
- 25. líneas de clasificación en archivo de texto, pero sólo usar los primeros N caracteres
- 26. evaluando líneas desde stdout
- 27. Encontrar líneas en un archivo de texto que coincida con una expresión regular
- 28. Cómo envolver líneas largas sin espacios en HTML?
- 29. PHP: ¿Cuál es una forma eficiente de analizar un archivo de texto que contiene líneas muy largas?
- 30. contando el número de líneas en un archivo de texto
Tiene el tamaño del montón a ser N. – shashuec
Aye, se olvidó de mencionar que, gracias – Gal
u puede explicar la Selección (N) .. gracias – shashuec