Có một chương trong Introduction to Algorithms dành cho việc tìm kiếm hai điểm gần nhất trong không gian hai chiều trong thời gian O (n * logn). Bạn có thể xem nó trên google books. Trong thực tế, tôi đề nghị nó cho tất cả mọi người như cách họ áp dụng kỹ thuật phân chia và chinh phục cho vấn đề này là rất đơn giản, thanh lịch và ấn tượng.
Mặc dù nó không thể được mở rộng trực tiếp đến vấn đề của bạn (vì hằng số 7
sẽ được thay thế bằng 2^101 - 1
), nó sẽ chỉ tốt cho hầu hết các tập dữ liệu. Vì vậy, nếu bạn có đầu vào ngẫu nhiên hợp lý, nó sẽ cung cấp cho bạn độ phức tạp O(n*logn*m)
trong đó n
là số điểm và m
là số thứ nguyên.
chỉnh sửa
Đó là tất cả giả sử bạn có không gian Euclidian. Tức là, chiều dài của vector v
là sqrt(v0^2 + v1^2 + v2^2 + ...)
. Tuy nhiên, nếu bạn có thể chọn chỉ số, có thể có các tùy chọn khác để tối ưu hóa thuật toán.
Nguồn
2010-10-10 05:39:57
Đây có phải là không gian chỉ số không? – Seth
Không quan tâm, bạn đã nhận được không gian 100 chiều ở đâu? –
câu hỏi thiếu sự rõ ràng. đây có phải là câu hỏi toán học không? – Sarmaad