Từ những gì tôi đã học được ràng buộc chặt chẽ không có triệu chứng có nghĩa là nó bị ràng buộc từ bên trên và bên dưới như trong ký hiệu theta. Nhưng giới hạn trên không chặt chẽ có ý nghĩa gì đối với ký hiệu Big-O?
Từ những gì tôi đã học được ràng buộc chặt chẽ không có triệu chứng có nghĩa là nó bị ràng buộc từ bên trên và bên dưới như trong ký hiệu theta. Nhưng giới hạn trên không chặt chẽ có ý nghĩa gì đối với ký hiệu Big-O?
Câu trả lời:
Nói rằng ràng buộc của chữ O lớn là "chặt chẽ không có triệu chứng" về cơ bản có nghĩa là tác giả nên viết . Ví dụ: O ( x 2 ) có nghĩa là nó không quá một số lần không đổi x 2 cho tất cả x đủ lớn ; "chặt chẽ không có triệu chứng" có nghĩa là nó thực sự là một số lần không đổi x 2 đối với x đủ lớn và không, giả sử, một số lần không đổi x 1.999 .
Đây là một ví dụ giải thích nó (và một ví dụ cụ thể cho câu trả lời hay của David).
Giả sử bạn có một thuật toán được đưa ra như là đầu vào một mảng các số nguyên . Thuật toán quét qua mảng và tăng bộ đếm ban đầu được đặt thành 0 mỗi lần nó nhìn thấy một phần tử là số nguyên chẵn. Chúng ta có thể chứng minh chạy thuật toán trong tiếng nói O ( n 3 ) thời gian, nơi n là số phần tử trong A . Nhưng chúng ta cũng có thể đưa ra một ràng buộc chặt chẽ hơn và nói rằng nó chạy trong thời gian O ( n ) . Đây ràng buộc là tiệm chặt chẽ: trên thực tế, kể từ khi đọc đầu vào đã mất Ω ( n ) thời gian, chúng ta có thể được chính xác hơn và nói rằng thuật toán mất thời gian.