Chắc chắn có nhiều cách để chỉ ra rằng các thuật toán nhất định phải mất một lượng thời gian nhất định hoặc các cấu trúc dữ liệu nhất định cần một lượng không gian nhất định. Một cách phổ biến là sử dụng lý thuyết thông tin.
Một mảng chưa sắp xếp là một hoán vị của mảng được sắp xếp. Cón!hoán vị có thể. Công việc sắp xếp, theo nghĩa lý thuyết thông tin, là khám phá chính xác đó là hoán vị.
Để truyền một số giữa 1 và m yêu cầu truyền log2mbit thông tin. Để truyền một hoán vị củan các yếu tố, do đó, đòi hỏi log2n!bit thông tin. Bằng cách xấp xỉ của Stirling, điều này hóa ra lànlog2n+O(low order) chút ít.
Một hoạt động so sánh nhị phân phát hiện ra một chút thông tin. Theo sau, bất kỳ thuật toán sắp xếp nào chỉ sử dụng thao tác so sánh nhị phân đều phải thực hiện ít nhấtnlog2n+o(nlogn)so sánh. Nếu chúng ta giả định rằng việc so sánh mất một lượng thời gian không đổi, điều đó có nghĩa là việc sắp xếp phải mất ít nhấtΩ(nlogn) thời gian.
Một loại cơ số có thể đánh bại điều này bằng cách khám phá nhiều hơn một bit thông tin cho mỗi truy vấn.
Một lập luận tương tự cho thấy tìm kiếm nhị phân là tối ưu. Bạn đang cố gắng tìm một số giữa1 và n, có nghĩa là khám phá log2nbit thông tin. Nếu hoạt động truy vấn của bạn trả về một bit thông tin, bạn cần ít nhấtlog2n truy vấn để tìm một yếu tố
Đó là một câu chuyện tương tự với việc sử dụng không gian. Giả sử rằng bạn cần lưu trữ một hoán vị trong bộ nhớ. Theo một lập luận giống hệt nhau, điều này đòi hỏi ít nhấtnlog2n+o(nlogn)bit lưu trữ. Vì bạn cầnlog2n bit để lưu trữ một số nguyên giữa 1 và n, về cơ bản bạn không thể làm gì tốt hơn là lưu trữ n số nguyên.