Giả sử rằng chúng ta đọc một chuỗi gồm số, từng số một. Cách tìm phần tử nhỏ nhất thứ chỉ bằng cách sử dụng bộ nhớ ô và trong thời gian tuyến tính ( ). Tôi nghĩ rằng chúng ta nên lưu các điều khoản đầu tiên của chuỗi và khi nhận được thuật ngữ thứ , hãy xóa một thuật ngữ mà chúng tôi chắc chắn rằng nó không thể là phần tử nhỏ nhất của và sau đó lưu thuật ngữ '. Vì vậy, chúng ta nên có một chỉ báo cho thấy thuật ngữ không thể sử dụng này trong mỗi bước và chỉ báo này sẽ được cập nhật nhanh chóng trong từng bước. Tôi bắt đầu với "max"; nhưng nó không thể cập nhật nhanh chóng; Có nghĩa là nếu chúng ta xem xét max thì trong lần xóa đầu tiên, chúng ta bỏ lỡ max và chúng ta nên tìm kiếm max trong và nguyên nhân của nó mà nó không tuyến tính. Có lẽ chúng ta nên lưu điều khoản đầu tiên của trình tự thông minh hơn.
Làm thế nào để tôi giải quyết vấn đề này?