btvn.vn
Tìm kiếm Đăng nhập

Ý tưởng sắp xếp trộn

Lưu trên thiết bị này
Chuyên đề lựa chọn CS: Chia để trị · Chọn bài khác

Hai nửa phải được sắp xếp trước khi trộn

Sắp xếp trộn (merge sort) chia dãy thành hai phần có độ dài hơn kém nhau không quá 1. Tiếp tục sắp xếp từng phần bằng cùng cách đó. Dãy có không quá một phần tử đã đúng thứ tự, nên là cơ sở dừng. Khi hai phần đã sắp xếp xong, trộn chúng để nhận một dãy lớn hơn cũng đã sắp xếp. Bước trộn cần **cả hai phần đã có thứ tự**, không chỉ nối hai phần tùy ý.

Theo dõi một dãy sáu phần tử

Với A=[8,3,6,1,7,2], các bước chính là: | Bước | Dữ liệu | |---|---| | Chia lần đầu | [8,3,6] và [1,7,2] | | Chia tiếp | [8], [3,6]; [1], [7,2] | | Tới cơ sở | [8], [3], [6], [1], [7], [2] | | Trộn các phần nhỏ | [3,6] và [2,7] | | Hai nửa đã xong | [3,6,8] và [1,2,7] | | Kết hợp cuối | [1,2,3,6,7,8] | Bước chia tạo bài toán nhỏ; bước trị sắp xếp hai nửa; bước kết hợp trộn kết quả. Khác tìm nhị phân chỉ tiếp tục ở một phía phù hợp, sắp xếp trộn phải giải cả hai phía vì cần giữ mọi phần tử.

Bài luyện

Trong ví dụ, ngay trước phép trộn cuối, hai dãy nào cần có?
Chọn một đáp án

Bài luyện

Trường hợp nào được trả về ngay trong cơ sở của sắp xếp trộn?
Chọn một đáp án

Bài luyện

Vì sao bước trị phải sắp xếp cả hai nửa?
Chọn một đáp án

Đang học