Bubble sort so sánh cặp liền kề và hoán đổi nếu sai thứ tự. Phiên bản này dùng hàm đệ quy tự gọi chính nó.
Ví dụ
Input: 5 3 4 2 1 Output: 1 2 3 4 5
Giải thích
Hàm đệ quy so sánh cặp liền kề, hoán đổi nếu sai thứ tự cho đến khi mảng đã sắp xếp.
Ví dụ mã C++
#include <iostream>
using namespace std;
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
if (arr[i] > arr[i + 1]) {
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
if (n - 1 > 1) {
bubbleSort(arr, n - 1);
}
}
int main() {
int arr[] = {5, 4, 2, 1, 3};
int n = 5;
bubbleSort(arr, n);
for (int i = 0; i < n; i++)
cout << arr[i] << "\t";
return 0;
}