Cùng một bài, đọc bằng chữ. Nhanh hơn và tìm lại được bằng Ctrl+F.
Cây chia đôi trên tám số
- Tầng 05 2 8 1 9 3 7 4 — một mảng tám phần tử
- Tầng 15 2 8 1 và 9 3 7 4 — hai mảng bốn
- Tầng 25 2 · 8 1 · 9 3 · 7 4 — bốn mảng hai
- Tầng 3Tám mảng một phần tử. Ba tầng chia, vì chia đôi tám ba lần
Trộn hai mảng đã đúng thứ tự
Đặt một con trỏ ở đầu mỗi mảng, mỗi bước lấy phần tử nhỏ hơn rồi đẩy con trỏ đó lên một. Trộn 2 5 với 1 8 ra 1 2 5 8. Mỗi phần tử chỉ được nhìn đúng một lần.
n log n nằm ở đâu
Mỗi tầng trộn lại đúng n phần tử, dù tầng đó chia thành bao nhiêu mảng nhỏ. Có log n tầng. Nhân hai thứ đó ra n log n, không cần công thức truy hồi nào.
Không có trường hợp xấu nhất
Số tầng chỉ phụ thuộc số phần tử, không phụ thuộc dữ liệu. Mảng đã đúng thứ tự hay đảo ngược đều tốn đúng ngần đó. Quick sort không có tính chất này.
Merge sort: được gì, mất gì
Ưu điểm
Luôn n log n, kể cả trường hợp xấu nhất
Ổn định, hợp khi sắp theo nhiều khoá
Chạy được trên dữ liệu lớn hơn RAM
Nhược điểm
Bản thường dùng cần mảng phụ cỡ n
Chậm hơn quick sort ở mảng vừa
Đệ quy log n tầng, đọc khó hơn
Lưu lại để chạy tay sau
Loạt bài thuật toán sắp xếp cho dev Việt Nam.










