Sắp xếp nổi bọt
Trang này sẽ giới thiệu ngắn gọn về thuật toán Sắp xếp nổi bọt (Bubble Sort).
Định nghĩa
Sắp xếp nổi bọt (tiếng Anh: Bubble sort) là một thuật toán sắp xếp đơn giản. Trong quá trình thực hiện, các phần tử nhỏ hơn sẽ "nổi" dần lên đầu dãy số như các bong bóng, do đó có tên gọi là sắp xếp nổi bọt.
Quy trình
Nguyên lý hoạt động là mỗi lần kiểm tra hai phần tử kề nhau, nếu phần tử phía trước và phía sau không đúng thứ tự mong muốn, sẽ hoán đổi chúng. Khi không còn cặp phần tử nào cần hoán đổi, quá trình sắp xếp kết thúc.
Sau \(i\) lượt quét, \(i\) phần tử cuối cùng của dãy chắc chắn là \(i\) phần tử lớn nhất, do đó tối đa cần \(n-1\) lượt quét để hoàn thành sắp xếp.
Tính chất
Tính ổn định
Sắp xếp nổi bọt là một thuật toán sắp xếp ổn định.
Độ phức tạp thời gian
Khi dãy đã có thứ tự, sắp xếp nổi bọt chỉ cần duyệt một lần, không cần hoán đổi, độ phức tạp là \(O(n)\).
Trường hợp xấu nhất, thuật toán thực hiện \(\frac{(n-1)n}{2}\) lần hoán đổi, độ phức tạp là \(O(n^2)\).
Trung bình, độ phức tạp thời gian của sắp xếp nổi bọt là \(O(n^2)\).
Cài đặt mã nguồn
Giả mã
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
1 2 3 4 5 6 7 8 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
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