Trong một cuộc phỏng vấn gần đây tôi đã được hỏi:Tìm giữa danh sách kích thước không xác định
Tìm phần tử trung bình của danh sách được sắp xếp có độ dài chưa biết bắt đầu từ vị trí đầu tiên.
Tôi đáp lại bằng này:
Có 2 quầy số các mục:
counter1 counter2
Tăng counter1 bởi 1 và counter2 bằng 2. Khi truy cập 2 đạt đến cuối danh sách truy cập 1 sẽ ở giữa. Tôi cảm thấy rằng điều này không hiệu quả vì tôi đang xem lại các nút mà tôi đã thấy. Dù bằng cách nào, là có một thuật toán hiệu quả hơn?
Đây là thời gian 'O (N)' và không gian 'O (1)'; có vẻ khá tốt với tôi. – PengOne
Nếu độ dài không xác định, hoạt động nào được phép? Đây có phải là danh sách _linked không? – Vlad
Tôi đã nghĩ rằng bạn có thể làm một cái gì đó tương tự nhưng cùng một quầy nhưng thay vì nhảy 2, nhảy một số lượng lớn hơn. Nhảy khoảng cách của bộ đếm đang nhảy lên 1 và sau đó khi bạn đạt đến số đếm biên của mình một. Điều này tốt hơn, không hợp lệ hoặc thiếu sót? – segFault