Jaka jest różnica między sortowaniem zewnętrznym a sortowaniem wewnętrznym? Nie rozumiem, w jaki sposób dane wejściowe mogą być przechowywane w pamięci RAM, a które nie mają związku z algorytmem.Jaka jest różnica między sortowaniem zewnętrznym a sortowaniem wewnętrznym?
Odpowiedz
W wewnętrznym sortowaniu wszystkie dane do sortowania są przechowywane w pamięci przez cały czas, gdy sortowanie jest w toku. W zewnętrznym sortowaniu dane są przechowywane poza pamięcią (jak na dysku) i ładowane do pamięci tylko w małych porcjach. Sortowanie z zewnątrz jest zwykle stosowane w przypadkach, gdy dane nie mieszczą się całkowicie w pamięci.
W przypadku sortowania wewnętrznego można zrobić coś w rodzaju sortowania skorupowego - wystarczy uzyskać dostęp do żądanych elementów tablicy w dowolnym momencie. Nie można tego zrobić w sortowaniu zewnętrznym - tablica nie jest całkowicie w pamięci, więc nie można po prostu uzyskać dostępu do dowolnego elementu w pamięci, a dostęp do niego losowo na dysku jest zwykle bardzo wolny. Zewnętrzny algorytm sortowania musi w optymalny sposób ładować i rozładowywać porcje danych.
pamięć zewnętrzna - dostajesz części danych na raz? – committedandroider
@ committedandroid: Tak, ponieważ nie można dopasować wszystkich danych do dostępnej pamięci. – sharptooth
- 1. Jaka jest różnica między sortowaniem a sortowaniem topologicznym?
- 2. Różnica między kodowaniem a sortowaniem?
- 3. Ogromna różnica w czasie pomiędzy sortowaniem zestawu a sortowaniem listy w Pythonie
- 4. Jaka jest różnica między zewnętrznym fn a zewnętrznym "C" fn w Rust?
- 5. Problemy z sortowaniem korespondencji seryjnej
- 6. Jaka jest różnica między cat_id a term_id?
- 7. Jaka jest różnica między IEnumerable a tablicami?
- 8. Jaka jest różnica między == a === w Verilog?
- 9. Jaka jest różnica między UseCase a Workflow?
- 10. Jaka jest różnica między pakietem a intencją?
- 11. Jaka jest różnica między węzłem a wierzchołkiem?
- 12. Jaka jest różnica między Ember.computed.alias a Ember.binding?
- 13. Jaka jest różnica między alertem a window.alert?
- 14. Jaka jest różnica między @android a android:
- 15. Jaka jest różnica między krotką a kompresją?
- 16. Jaka jest różnica między proxy a reify?
- 17. Jaka jest różnica między @Inject a @PersistenceContext?
- 18. Jaka jest różnica między sqlite3 a pdo_sqlite
- 19. Jaka jest różnica między Const a Constant?
- 20. Jaka jest różnica między Socket.IO a Firebase?
- 21. Jaka jest różnica między macierzą a tablix?
- 22. Jaka jest różnica między KERN_INVALID_ADDRESS a KERN_PROTECTION_FAILURE?
- 23. Jaka jest różnica między Float.POSITIVE_INFINITY a Float.MAX_VALUE?
- 24. Jaka jest różnica między SGML a XML?
- 25. Jaka jest różnica między Cake a Leiningen?
- 26. Jaka jest różnica między JavaBean a POJO?
- 27. Jaka jest różnica między kopiowaniem a klonowaniem?
- 28. Jaka jest różnica między HAVING a WHERE?
- 29. Jaka jest różnica między ItemTemplate a ItemPanelTemplate?
- 30. Jaka jest różnica między słownikiem a tablicą?
http://en.wikipedia.org/wiki/External_sorting –
http://en.wikipedia.org/wiki/Internal_sort –
Jeśli nie widzisz różnicy w sortowaniu w pamięci lub poza pamięcią sprawia, że nie myślisz wystarczająco mocno o tej sprawie. Proponuję napisać programy do zrobienia obu. Najpierw posortuj listę liczb całkowitych o długości 100; następnie posortuj listę liczb całkowitych działających na, powiedzmy, 4TB. –