Thuật toán sắp xếp kiểu sủi bọt được thực hiện đơn giản bằng cách tráo đổi hai phần từ liền kề nhau nếu chúng chưa được sắp xếp. Việc tráo đổi diễn ra đến khi các phần tử trong hàng được sắp xếp theo trình tự nhất định. 2.Ví dụ minh họa hoạt động giải thuật Cho dãy số ban đầu 5 3 8 4 6 B1:So sánh 5 và 3 rồi hoán đổi theo thứ tự mong muốn => 3 5 8 4 6 B2: So sánh 5 và 8 thấy không cần hoán đổi B3: So sánh 8 và 4 thấy cần hoán đổi => 3 5 4 8 6 …. 3. Biểu diễn giải thuật for (i = 0; i < n; i++) { //lặp i=0, 1, 2,..,n. for (j=0; j<n-i-1; j++ ) {//lặp j =0, 1,.., n-i-1 if (Arr[j] > Arr[j+1] ) { //nếu Arr[j]>Arr[j+1] thì đổi chỗ temp = Arr[j]; Arr[j] = Arr[j+1]; Arr[j+1] = temp; } } } 4. Đánh giá độ phức tạp của thuật toán Trong trường hợp xấu nhất : với mỗi i ta cần n phép so sánh, với mỗi j ta cần n – i – 1 phép so sánh => độ phức tạp O(n^2) Trong trường hợp tốt nhất: i cần 1 phép so sánh, j cần n – 1 phép so sánh => độ phức tạp O(n) Trong trường hợp trung bình: với mỗi i ta cần n/2 phép so sánh, với mỗi j ta cần (n - i – 1)/2 phép so sánh => độ phức tạp O(n^2) Code minh họa: