Can anybody guide me about how I can merge large sorted blocks of a file whose records are English words? I'm doing this on a personal computer and my programming language is Java. I'm passing information retrieval this semester and the file has a size about 1.5 GB and is on my hard disk. The heap size our program is permitted to use is limited to 32 MB. I need an appropriate merge algorithm appropriate to these hardware limitations which is also input-output efficient. Any idea or suggestion to optimise the performance(other than the algorithm itself) would be appreciated.Thank you.

And one more question:
if my pc has a dual-core processor and my operating system is ubuntu, does deploying threads help me do this faster? Thank you.