Gần đây tôi đã gặp sự cố lập trình như sau:Để tìm phần tử tối thiểu trong một mảng được sắp xếp và xoay
Một mảng được sắp xếp được cung cấp và mảng được xoay tại một số điểm chưa biết, tôi phải tìm yếu tố tối thiểu trong đó. Mảng cũng có thể chứa các bản sao.
Đối với ví dụ:
Input: {5, 6, 1, 2, 3, 4}
Output: 1
Input: {2, 2, 2, 2, 2, 2, 2, 2, 0, 1, 1, 2}
Output: 0
Tôi đi theo giải pháp đơn giản là để đi qua trough mảng đầy đủ và tìm tối thiểu. Giải pháp này đòi hỏi thời gian O (n) .Tôi hiểu thực tế là yếu tố tối thiểu là phần tử có phần tử trước đó lớn hơn nó. Nếu không có yếu tố như vậy, thì không có vòng quay và phần tử đầu tiên sẽ là tối thiểu.
Nhưng tôi đã được yêu cầu giải pháp O (Đăng nhập). Có cách nào để giải quyết nó trong thời gian O (Logn) không?
nhị phân tìm kiếm này là giải pháp cho 'O (log n)', bạn chỉ cần thêm điều kiện thêm cho quay. –
Bạn có thể kiểm tra liên kết này http://www.geeksforgeeks.org/find-minimum-element-in-a-sorted-and-rotated-array/ – vikiiii
Là một câu hỏi phỏng vấn cho công việc đầu tiên của tôi ngoài đại học. Người phỏng vấn gọi nó là "mảng được phân loại T", nhưng tôi không biết mức độ phổ biến của cụm từ này là ... –