Tất cả các phức tạp bạn cung cấp là đúng, tuy nhiên chúng được đưa ra trong ký hiệu Big O , vì vậy tất cả các giá trị cộng và hằng được bỏ qua.
Để trả lời câu hỏi của bạn, chúng tôi cần tập trung vào phân tích chi tiết về hai thuật toán đó. Phân tích này có thể được thực hiện bằng tay, hoặc tìm thấy trong nhiều cuốn sách. Tôi sẽ sử dụng kết quả từ Nghệ thuật lập trình máy tính của Knuth .
Số lượng so sánh trung bình:
- Sắp xếp bong bóng : 12( N2- NlnN- ( γ+ ln2 - 1 ) N) + O ( N--√)
- Sắp xếp chèn : 14( N2- N) + N- HN
- Lựa chọn sắp xếp : (N+ 1 ) HN- 2 N
Bây giờ, nếu bạn vẽ các hàm đó, bạn sẽ có được một cái gì đó như thế này:
Như bạn có thể thấy, sắp xếp bong bóng tồi tệ hơn nhiều khi số lượng phần tử tăng lên, mặc dù cả hai phương pháp sắp xếp đều có độ phức tạp tiệm cận giống nhau.
Phân tích này dựa trên giả định rằng đầu vào là ngẫu nhiên - điều này có thể không đúng mọi lúc. Tuy nhiên, trước khi bắt đầu sắp xếp, chúng ta có thể hoán vị ngẫu nhiên chuỗi đầu vào (sử dụng bất kỳ phương thức nào) để thu được trường hợp trung bình.
Tôi đã bỏ qua phân tích độ phức tạp thời gian bởi vì nó phụ thuộc vào việc thực hiện, nhưng các phương pháp tương tự có thể được sử dụng.