Bubble Sort
Cập nhật: 2026-08-10
Mục lục
1. Ý tưởng của Bubble Sort
Bubble Sort lặp qua mảng nhiều lượt, ở mỗi lượt so sánh từng cặp phần tử liền kề — nếu phần tử trước lớn hơn phần tử sau thì hoán đổi chúng. Sau mỗi lượt, phần tử lớn nhất còn lại sẽ "nổi" dần về cuối mảng, giống bong bóng nổi lên mặt nước — đó cũng là lý do tên gọi Bubble Sort.
Phiên bản tối ưu sẽ dừng sớm (break) ngay khi một lượt quét không còn hoán đổi nào — nghĩa là mảng đã sắp xong, không cần quét thêm.
2. Xem thuật toán chạy từng bước
Bấm Chạy để xem animation tự động, hoặc dùng Lùi / Tiến để đi qua từng bước một. Cột màu cam là cặp liền kề đang được so sánh, cột màu xanh mint là phần đã "chốt" ở cuối mảng.
Bubble Sort
Bắt đầu lượt 1.
3. Độ phức tạp
| Bubble Sort | |
|---|---|
| Thời gian (xấu nhất / trung bình) | O(n²) |
| Thời gian (tốt nhất, mảng đã sắp xếp) | O(n) — nhờ dừng sớm |
| Bộ nhớ phụ | O(1) |
| Ổn định (stable) | Có |
Bubble Sort hiếm khi được dùng trong thực tế vì chậm hơn hẳn Selection Sort hay Insertion Sort ở hầu hết trường hợp, nhưng vẫn là thuật toán kinh điển để nhập môn khái niệm so sánh — hoán đổi và độ phức tạp O(n²).