Sắp xếp xô
Trang này sẽ giới thiệu ngắn gọn về thuật toán Sắp xếp theo thùng (Bucket Sort).
Định nghĩa
Sắp xếp theo thùng (tiếng Anh: Bucket sort) là một thuật toán sắp xếp, phù hợp với trường hợp dữ liệu cần sắp xếp có giá trị lớn nhưng phân bố khá đều.
Quy trình
Sắp xếp theo thùng thực hiện theo các bước sau:
- Khởi tạo một mảng các thùng rỗng;
- Duyệt qua dãy số, đưa từng phần tử vào thùng tương ứng;
- Sắp xếp từng thùng (nếu thùng không rỗng);
- Gom các phần tử từ các thùng về lại dãy ban đầu.
Tính chất
Tính ổn định
Nếu sử dụng thuật toán sắp xếp ổn định bên trong mỗi thùng, và khi đưa phần tử vào thùng không làm thay đổi thứ tự tương đối giữa các phần tử, thì sắp xếp theo thùng là một thuật toán ổn định.
Vì mỗi thùng thường có ít phần tử, nên thường dùng sắp xếp chèn (insertion sort) cho mỗi thùng. Khi đó, thuật toán là ổn định.
Độ phức tạp thời gian
Trung bình, sắp xếp theo thùng có độ phức tạp \(O(n + n^2/k + k)\) (chia giá trị thành \(n\) thùng + sắp xếp + gộp lại), khi \(k\approx n\) thì là \(O(n)\).1
Trường hợp xấu nhất, độ phức tạp là \(O(n^2)\).
Cài đặt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | |
Tài liệu tham khảo & chú thích
Last updated on this page:, Update history
Found an error? Want to help improve? Edit this page on GitHub!
Contributors to this page:OI-wiki
All content on this page is provided under the terms of the CC BY-SA 4.0 and SATA license, additional terms may apply