Thuật toán sắp xếp nổi bọt (Bubble Sort) là một trong những thuật toán sắp xếp đơn giản nhất. Nguyên lý hoạt động của thuật toán này là so sánh từng cặp phần tử kề nhau trong danh sách và hoán đổi chúng nếu chúng không theo thứ tự mong muốn. Quá trình này được lặp lại cho đến khi không còn phần tử nào cần hoán đổi, tức là danh sách đã được sắp xếp.
### Cách hoạt động của thuật toán:
1. Bắt đầu từ phần tử đầu tiên trong danh sách.
2. So sánh phần tử hiện tại với phần tử kế tiếp.
3. Nếu phần tử hiện tại lớn hơn phần tử kế tiếp (trong trường hợp sắp xếp tăng dần), hoán đổi chúng.
4. Di chuyển đến phần tử tiếp theo và lặp lại bước 2 và 3 cho đến khi đến cuối danh sách.
5. Lặp lại toàn bộ quá trình cho đến khi không còn hoán đổi nào xảy ra trong một lần duyệt.
### Đặc điểm:
- **Độ phức tạp thời gian**: O(n^2) trong trường hợp xấu nhất và trung bình, O(n) trong trường hợp tốt nhất (khi danh sách đã được sắp xếp).
- **Không yêu cầu bộ nhớ bổ sung**: Thuật toán này là một thuật toán sắp xếp tại chỗ (in-place).
- **Dễ hiểu và dễ cài đặt**: Tuy nhiên, do độ phức tạp cao, nó không được sử dụng cho các danh sách lớn.
### Ví dụ:
Giả sử bạn có danh sách: [5, 3, 8, 4, 2]
- So sánh 5 và 3, hoán đổi → [3, 5, 8, 4, 2]
- So sánh 5 và 8, không hoán đổi → [3, 5, 8, 4, 2]
- So sánh 8 và 4, hoán đổi → [3, 5, 4, 8, 2]
- So sánh 8 và 2, hoán đổi → [3, 5, 4, 2, 8]
- Lặp lại cho đến khi danh sách được sắp xếp hoàn toàn.
Hy vọng thông tin này giúp bạn hiểu rõ hơn về thuật toán sắp xếp nổi bọt!