Sự khác nhau giữa phân loại bên ngoài và sắp xếp nội bộ là gì? Tôi không thấy làm thế nào thời tiết dữ liệu đầu vào có thể được lưu trữ trong bộ nhớ RAM hoặc không phải làm với các thuật toán.Sự khác nhau giữa phân loại bên ngoài và sắp xếp nội bộ là gì?
Trả lời
Trong sắp xếp nội bộ, tất cả dữ liệu cần sắp xếp được lưu trữ trong bộ nhớ mọi lúc trong khi sắp xếp đang diễn ra. Trong dữ liệu phân loại bên ngoài được lưu trữ bên ngoài bộ nhớ (như trên đĩa) và chỉ được nạp vào bộ nhớ trong các khối nhỏ. Sắp xếp bên ngoài thường được áp dụng trong trường hợp dữ liệu không thể khớp hoàn toàn với bộ nhớ.
Vì vậy, trong sắp xếp nội bộ, bạn có thể làm điều gì đó như sắp xếp vỏ - chỉ cần truy cập bất kỳ phần tử mảng nào bạn muốn bất cứ lúc nào bạn muốn. Bạn không thể làm điều đó trong phân loại bên ngoài - mảng không hoàn toàn trong bộ nhớ, vì vậy bạn không thể truy cập ngẫu nhiên bất kỳ phần tử nào trong bộ nhớ và truy cập ngẫu nhiên vào đĩa thường rất chậm. Thuật toán phân loại bên ngoài phải xử lý việc tải và dỡ khối dữ liệu theo cách tối ưu.
bộ nhớ ngoài - bạn nhận được các phần dữ liệu cùng một lúc? – committedandroider
@committedandroider: Có, bởi vì bạn không thể phù hợp với tất cả dữ liệu vào bộ nhớ có sẵn. – sharptooth
- 1. Sự khác nhau giữa khai báo, sắp xếp và biến cục bộ trong Bash
- 2. Sự khác nhau giữa UPnP AV và DLNA là gì?
- 3. Sự khác nhau giữa `ImmutableSortedSet` và fsharp` Set` là gì?
- 4. OpenXml: Sự khác nhau giữa SdtBlock và SdtCell là gì?
- 5. Sự khác biệt giữa phân loại và phân loại topo là gì?
- 6. Sự khác nhau giữa "bool" và "bool" là gì?
- 7. Sự khác nhau giữa NSIndexSet và NSSet là gì?
- 8. Sự khác nhau giữa NSCFString và NSConstantString là gì?
- 9. Sự khác nhau giữa Lucene StandardAnalyzer và EnglishAnalyzer là gì?
- 10. Sự khác nhau giữa các loại giá trị và loại tham chiếu trong C# là gì?
- 11. Sự khác nhau giữa ImageMagick và GraphicsMagick là gì?
- 12. Sự khác nhau giữa GetBlobReference và GetBlobReferenceFromServer là gì?
- 13. Sự khác nhau giữa cat_id và term_id là gì?
- 14. Sự khác nhau giữa pls_integer và binary_integer là gì?
- 15. Sự khác nhau giữa AlertDialog.builder.setView và Dialog.setContentView là gì?
- 16. Sự khác nhau giữa tincan và Scorm là gì?
- 17. Sự khác nhau giữa KERN_INVALID_ADDRESS và KERN_PROTECTION_FAILURE là gì?
- 18. Sự khác nhau giữa trừu tượng và ảo là gì?
- 19. Sự khác nhau giữa ssize_t và ptrdiff_t là gì?
- 20. Sự khác nhau giữa hai bộ chọn này là gì?
- 21. Sự khác nhau giữa Phing và PHPUnderControl là gì?
- 22. Sự khác nhau chính giữa signcode.exe và signtool.exe là gì?
- 23. Sự khác nhau giữa JFrame.getContentPane() và JFrame.getRootPane() là gì?
- 24. Sự khác nhau giữa GEM_HOME và GEM_PATH là gì?
- 25. Sự khác nhau giữa Equinox và Virgo là gì?
- 26. Sự khác nhau giữa "số nhận dạng loại" và "loại" trong Cython là gì?
- 27. Sự khác nhau giữa BSTR và _bstr_t là gì?
- 28. Sự khác nhau giữa `DialogInterface.dismiss()` và `DialogInterface.cancel()` là gì?
- 29. Sự khác nhau giữa cstdlib và stdlib.h là gì?
- 30. Sự khác nhau giữa "Thêm các JAR" và "Thêm các JAR Ngoài" trong Eclipse là gì?
http://en.wikipedia.org/wiki/External_sorting –
http://en.wikipedia.org/wiki/Internal_sort –
Nếu bạn không thể thấy sự khác biệt trong phân loại bộ nhớ hoặc bộ nhớ ngoài bộ nhớ khiến bạn không nghĩ đủ về vấn đề này. Tôi đề nghị bạn viết chương trình để làm cả hai. Đầu tiên, sắp xếp danh sách các số nguyên có độ dài 100; tiếp theo sắp xếp một danh sách các số nguyên chạy đến, nói, 4TB. –