advanced
Tối ưu hóa thuật toán tìm kiếm trong Python
Phân tích và viết lại đoạn mã Python để giảm độ phức tạp thời gian từ O(n^2) xuống O(n log n).
📝 Nội dung Prompt
Bạn hãy phân tích đoạn mã Python sau đây thực hiện việc tìm kiếm các cặp số trong một danh sách có tổng bằng một giá trị mục tiêu cho trước. Hiện tại, độ phức tạp thời gian của thuật toán là O(n^2). Nhiệm vụ của bạn là viết lại mã để tối ưu hóa hiệu suất, giảm độ phức tạp xuống O(n log n) hoặc O(n) bằng cách sử dụng các cấu trúc dữ liệu phù hợp như bảng băm (hash table) hoặc sắp xếp mảng. Ngoài ra, hãy giải thích logic thay đổi của bạn và so sánh hiệu năng giả định giữa hai phương án.