1 Gb

Here is the problem:I have only 1GB RAM in computer. I have a text file of 10 GB data.This file contains numbers. How will I sort them?

Adding some more details.

-They are all integers lượt thích 10000, 16723998 etc. -same integer values can be repeatedly appearing in the tệp tin.

Bạn đang xem: 1 gb

*

split the tệp tin inkhổng lồ parts (buffers) that you can sort in-place

then when all buffers are sorted take 2 (or more) at the time và merge them (like merge sort) until there"s only 1 buffer remaining which will be the sorted file


Xem thêm: Tiểu Sử Nhà Sư Thích Tâm Nguyên Tiểu Sử, Tiểu Sử Thích Tâm Nguyên

*

Please see this links. This guy has explained it beautifully.

An example of disk-based application: External mergesort algorithm (wikipedia)A merge sort divides the unsorted danh sách inlớn n sublists, each containing 1 element, & then repeatedly merges sublists lớn produce new sorted sublists until there is only 1 subdanh mục remaining.The external mergesort algorithm sorts chunks that each fit in RAM, then merges the sorted chunks together.For example, for sorting 900 megabytes of data using only 100 megabytes of RAM:1. Read 100 MB of the data in main memory & sort by some conventional sorting method, like quicksort.2. Write the sorted data to lớn disk.3. Repeat steps 1 and 2 until all of the data is in sorted 100 MB chunks (there are 900MB / 100MB = 9 chunks), which now need khổng lồ be merged into lớn one single output file.4. Read the first 10 MB of each sorted chunk (of 100 MB) into lớn đầu vào buffers in main memory and allocate the remaining 10 MB for an output buffer. (In practice, it might provide better performance khổng lồ make the output buffer larger and the input buffers slightly smaller.)5. Perkhung a 9-way merge & store the result in the output buffer. Whenever the output buffer fills, write it to lớn the final sorted file và empty it. Whenever any of the 9 input buffers empties, fill it with the next 10 MB of its associated 100 MB sorted chunk until no more data from the chunk is available. This is the key step that makes external merge sort work externally -- because the merge algorithm only makes one pass sequentially through each of the chunks, each chunk does not have to lớn be loaded completely; rather, sequential parts of the chunk can be loaded as needed.