tự nhiên (Natural Merge-Sort)
Giải thuật:
• B1:Tạo các mạch tự nhiên trên các mẫu tin của file F.
• B2:Phân phối xen kẻ các mạch trong F vào 2 tập tin phụ là file F1 và file F2.
• B3:Xác định lại các mạch tự nhiên trên F1 và F2. • B4:Trộn lần lượt từng cặp các mạch trong F1 và
F2 vào F, nếu còn mạch dư thừa trong F1 hoặc F2 thì sao chép hết vào F.
• B5:Thực hiện lại các bước trên cho đến khi nào F đã có thứ tự.
Ví dụ
Ví dụ
Sắp xếp các số nguyên trong một tập tin F như sau:
1 2 15 18 2 1 0 9 1 7 16 4 18 11 1 0 6 9 14 4
B1:Tạo các run tự nhiên cho F và phân phối xen kẻ vào 2 tập tin phụ là F1 và F2
F: 1 2 15 18 2 1 0 9 1 7 16 4 18 11 1 0 6 9 14 4F1: 1 2 15 18 1 1 7 16 11 0 6 9 14 F1: 1 2 15 18 1 1 7 16 11 0 6 9 14
Ví dụ
Ví dụ
B2: Xác định lại các run trên F1, F2 và trộn chúng vào F F1: 1 2 15 18 1 1 7 16 11 0 6 9 14
F2: 2 0 9 4 18 1 4
F:1 2 2 15 18 0 1 1 7 9 16 4 11 18 0 1 4 6 9 14
B3:Tạo các run tự nhiên cho F và phân phối xen kẻ vào 2 tập tin phụ là F1 và F2
F:1 2 2 15 18 0 1 1 7 9 16 4 11 18 0 1 4 6 9 14F1:1 2 2 15 18 4 11 18 F1:1 2 2 15 18 4 11 18
Ví dụ
Ví dụ
B4: Xác định lại các run trên F1, F2 và trộn chúng vào F F1:1 2 2 15 18 4 11 18
F2: 0 1 1 7 9 16 0 1 4 6 9 14
F:0 1 1 1 2 2 7 9 15 16 18 0 1 4 4 6 9 11 14 18
B5:Tạo các run tự nhiên cho F và phân phối xen kẻ vào 2 tập tin phụ là F1 và F2
F:0 1 1 1 2 2 7 9 15 16 18 0 1 4 4 6 9 11 14 18F1:0 1 1 1 2 2 7 9 15 16 18 F1:0 1 1 1 2 2 7 9 15 16 18
Ví dụ
Ví dụ
B6:Xác định lại các run trên F1, F2 và trộn chúng vào F F1:0 1 1 1 2 2 7 9 15 16 18
F2:0 1 4 4 6 9 11 14 18
F:0 0 1 1 1 1 2 2 4 4 6 7 9 9 11 14 15 16 18 18Đã sắp xếp xong Đã sắp xếp xong