Một trong những bài giảng của tôi đưa ra tuyên bố sau:
Có thể tôi thiếu một cái gì đó trong các định nghĩa, nhưng ví dụ sắp xếp bong bóng là chứ không phải nhưng nó cũng không phải là vì đây là thời gian chạy tốt nhất .
Tôi đang thiếu gì ở đây?
Một trong những bài giảng của tôi đưa ra tuyên bố sau:
Có thể tôi thiếu một cái gì đó trong các định nghĩa, nhưng ví dụ sắp xếp bong bóng là chứ không phải nhưng nó cũng không phải là vì đây là thời gian chạy tốt nhất .
Tôi đang thiếu gì ở đây?
Câu trả lời:
Những gì bạn đang thiếu là một điểm rất quan trọng: Một thuật toán không bao giờ là của bất cứ thứ gì, vì nó thường không phải là một hàm có giá trị thực.
Khi chúng ta nói rằng sắp xếp bong bóng là , điều chúng ta muốn nói là trong hàm , đại diện cho thời gian chạy tồi tệ nhất của sắp xếp bong bóng, là .
Trong trường hợp này, hàm này thực sự là , vì trong trường hợp xấu nhất, thời gian chạy được giới hạn từ bên dưới và từ phía trên bởi cho các hằng số có liên quan .
Nói chính xác hơn, hàm mà chúng ta gọi là thời gian chạy trường hợp xấu nhất của thuật toán được xác định bởi Và đây là chức năng mà chúng tôi phân tích trong thời gian chạy trường hợp xấu nhất.
Tất nhiên, thời gian chạy tốt nhất cũng có thể được phân tích. Như bạn đề xuất, thời gian chạy trường hợp tốt nhất của sắp xếp bong bóng không phải là , mà là .
Nói với giảng viên là họ sai. Lấy hàm Hàm này là nhưng không phải hay .
Dưới đây là một ví dụ đơn điệu, có thể thuyết phục hơn: