Mình có tham khảo các phương pháp external merge sort theo thứ tự độ khó tăng dần:

1/ Run
2/ Run tự nhiên
3/ Đa lối cân bằng
4/ Đa pha

Tham khảo
3 cái đầu thì mình có thể nắm vấn đề và có thể code được nhưng cái thứ 4 thì ko hiểu lắm, bạn nào có thể giúp mình chạy tay bài này được ko

VD f0 chứa: 24 12 67 33 58 42 11 34 29 31 thì các bước chạy nó ra sao? Chép nửa run của f3 vào f1 là làm thế nào?

Trích dẫn:
Phương pháp này còn có nhược điểm là mất thời gian sao chép nửa số run của tập tin này vào tập tin kia. Việc sao chép này có thể loại bỏ nếu ta bắt đầu với Fn run của tập tin f1 và Fn-1 run của tập tin f2, với Fn và Fn-1 là các số liên tiếp trong dãy Fibonacci.
Từ đoạn này trở về sau mình ko hiểu lắm :(
Mong các pro giúp đỡ