Tôi đang làm việc trên một dự án trường học liên quan đến việc tham gia một điểm lat/long và tìm năm điểm gần nhất trong danh sách địa điểm đã biết. Danh sách sẽ được lưu trữ trong bộ nhớ, với báo trước rằng chúng ta phải chọn một "cấu trúc dữ liệu thích hợp" - nghĩa là chúng ta không thể lưu trữ tất cả các vị trí trong một mảng và so sánh từng khoảng cách một theo kiểu tuyến tính. Giáo viên đề xuất nhóm dữ liệu địa điểm của Nhà nước Hoa Kỳ để ngăn tính toán khoảng cách cho các địa điểm rõ ràng là quá xa. Tôi nghĩ tôi có thể làm tốt hơn.R Tree 50.000 foot tổng quan?
Từ nghiên cứu trực tuyến của tôi có vẻ như một R-Tree hoặc một trong các biến thể của nó có thể là một giải pháp gọn gàng. Thật không may, câu đó là như xa như tôi đã nhận được với sự hiểu biết kỹ thuật thực tế, như văn học chỉ đơn giản là quá dày đặc cho người đứng đầu không học thuật của tôi.
ai đó có thể cho tôi một cái nhìn tổng quan thực sự cao những gì quá trình này là cho Populating một R-Tree với dữ liệu lat/dài, và sau đó đi qua cây để tìm những 5 láng giềng gần nhất của một điểm nhất định? Ngoài ra, dự án nằm trong C, và tôi không phải phát minh lại bánh xe về điều này, vì vậy nếu bạn đã sử dụng triển khai C nguồn mở hiện tại của R Tree, tôi sẽ quan tâm đến trải nghiệm của bạn.
UPDATE:This blog post mô tả một thuật toán tìm kiếm đơn giản cho một không gian khu vực phân (giống như một quadtree PR). Hy vọng rằng sẽ giúp một người đọc trong tương lai.
Hãy xem http://www.rtreeportal.org/, có các gợi ý cho một số triển khai. Lưu ý rằng tôi chưa thấy một triển khai C không phải là crap. – avakar
Crap như trong không hiệu quả, hoặc crap như trong sẽ không biên dịch? Trước đây là tốt cho mục đích của tôi. :-) – roufamatic
Crap như trong "không kiểm tra kết quả của malloc và vi phạm tương tự khác". Tôi không biết liệu nó có tốt cho mục đích bài tập ở nhà hay không. :) – avakar