Qual è la differenza tra ordinamento esterno e ordinamento interno? Non vedo come mai i dati di input possono essere memorizzati nella RAM o non ha a che fare con l'algoritmo.Qual è la differenza tra l'ordinamento esterno e l'ordinamento interno?
risposta
Nell'ordinamento interno tutti i dati da ordinare vengono memorizzati in memoria in qualsiasi momento mentre è in corso l'ordinamento. Nell'ordinamento esterno i dati vengono archiviati fuori dalla memoria (come su disco) e caricati solo in memoria in piccoli blocchi. L'ordinamento esterno viene solitamente applicato nei casi in cui i dati non possono essere inseriti interamente nella memoria.
Così nell'ordinamento interno puoi fare qualcosa come l'ordinamento della shell: basta accedere a qualsiasi elemento dell'array desiderato nel momento desiderato. Non è possibile farlo nell'ordinamento esterno: l'array non è interamente in memoria, quindi non è possibile accedere in modo casuale a qualsiasi elemento in memoria e accedervi casualmente su disco è in genere estremamente lento. L'algoritmo di ordinamento esterno deve occuparsi di caricare e scaricare blocchi di dati in modo ottimale.
memoria esterna: si ottengono parti dei dati alla volta? – committedandroider
@committedandroider: Sì, perché non è possibile inserire tutti i dati nella memoria disponibile. – sharptooth
- 1. qual è la differenza tra un "sacchetto esterno" e un "sacco interno" in pigLatin?
- 2. Qual è la differenza tra volatile ed esterno?
- 3. Qual è la differenza tra = e: =
- 4. Qual è la differenza tra Verilog! e ~?
- 5. Qual è la differenza tra? : e ||
- 6. qual è la differenza tra [[], []] e [[]] * 2
- 7. Qual è la differenza tra $ e $$?
- 8. Qual è la differenza tra ("") e (null)
- 9. Qual è la differenza tra dict() e {}?
- 10. Qual è la differenza tra " " e ""?
- 11. Qual è la differenza tra {0} e ""?
- 12. Qual è la differenza tra `##` e `hashCode`?
- 13. Qual è la differenza tra {0} e +?
- 14. Qual è la differenza tra .ToString() e + ""
- 15. qual è la differenza tra:.! e: r !?
- 16. Qual è la differenza tra l'uso e l'extern?
- 17. Qual è la differenza tra bundle Docker e docker-compose?
- 18. Qual è la differenza tra HttpResponseException e HttpException
- 19. Qual è la differenza tra SQL_Latin1_General_CP1_CI_AS e SQL_Latin1_General_CP1_CI_AI
- 20. Javascript - inline vs script esterno - qual è la differenza?
- 21. Qual è la differenza tra "è Nessuno" e "== Nessuno"
- 22. Unix: Qual è la differenza tra la fonte e l'esportazione?
- 23. Qual è la differenza tra il callback e la promessa
- 24. Qual è la differenza tra la sezione .got e .got.plt?
- 25. Qual è la differenza tra la lista() e []
- 26. Qual è la differenza tra GHC e la piattaforma Haskell?
- 27. Qual è la differenza tra sé e la finestra?
- 28. Qual è la differenza tra la cartella vim72 e vimfiles?
- 29. Qual è la differenza tra la serratura e RLock
- 30. Qual è la differenza tra la funzione() {}() e function() {}()
http://en.wikipedia.org/wiki/External_sorting –
http://en.wikipedia.org/wiki/Internal_sort –
Se non riesci a vedere la differenza che in memoria o ordinamento out-of-memory ti fa non aver pensato abbastanza a riguardo. Ti suggerisco di scrivere programmi per fare entrambe le cose. Per prima cosa, ordina una lista di interi di lunghezza 100; successivamente ordina una lista di interi che vanno, per esempio, a 4TB. –