Giả sử bạn có một chương trình con hộp đen có thể trích xuất tối đa từ một mảng các phần tử n trong thời gian (log n)^a
, trong đó 0 <= a <= 1
. Bạn đang cố gắng tạo một thuật toán phân loại tối ưu giúp sử dụng chương trình con này.Thời gian chạy sắp xếp với hộp con tìm kiếm hộp đen tìm kiếm
Giải pháp rõ ràng là gọi chương trình con trên toàn bộ mảng, hoán đổi giá trị tối đa với phần tử cuối cùng, sau đó gọi lại thường trình con theo số A[1, n-1]
qua A[1, 2]
.
Có một thuật toán tốt hơn chạy nhanh hơn thời gian n*(log n)^a
hay giải pháp hiển nhiên tối ưu?
Quan sát đầu tiên: bạn không thể làm tốt hơn nếu bạn không sử dụng hộp đen tối đa thường lệ –
Tôi nhận ra điều đó. – user666866
Anh ấy không nói rằng bạn đã có cách tốt hơn để so sánh các mục. –