Tìm kiếm thứ gì đó trong danh sách chưa sắp xếp là một nhiệm vụ với độ phức tạp thời gian . Tuy nhiên, nếu danh sách được sắp xếp, độ phức tạp thời gian là . Điều đó có nghĩa là đôi khi đáng để sắp xếp một mảng. Tuy nhiên, đó là một sự đánh đổi vì thuật toán sắp xếp có độ phức tạp thời gian là .
Theo tôi biết, bạn không thể sắp xếp một mảng trong thời gian ít hơn . Tuy nhiên tôi tự hỏi liệu có thuật toán nào có thể sắp xếp một phần mảng trong thời gian ít hơn không? Tôi khá chắc chắn rằng bạn không thể tìm kiếm một giá trị trong một mảng được sắp xếp một phần như vậy trong thời gian , nhưng bạn có thể làm tốt hơn không?
Nói tóm lại, có thể xử lý một mảng chưa được sắp xếp với thuật toán nhanh hơn sao cho thuật toán tra cứu có thể thực hiện tìm kiếm nhanh hơn , mặc dù không nhanh như ?
O(nlog(n))
thuật toán tra cứu có thể thực hiện tìm kiếm nhanh hơn O(n)
" Có thể. "Sắp xếp một phần có thể giúp với chi phí tra cứu trong mảng không?" Hoàn toàn không (cho một tra cứu duy nhất).