Cách đơn giản nhất để thực hiện điều này là để lặp qua tất cả các yếu tố và lưu trữ K gần nhất. (chỉ so sánh). Độ phức tạp của điều này là O(n)
không tốt lắm nhưng không cần xử lý trước. Vì vậy, bây giờ thực sự phụ thuộc vào ứng dụng của bạn. Bạn nên sử dụng một số chỉ mục không gian cho vùng phân vùng nơi bạn tìm kiếm knn. Đối với một số cấu trúc không gian dựa trên lưới ứng dụng là tốt (chỉ cần chia thế giới của bạn thành khối cố định và chỉ tìm kiếm trong các khối đóng trước). Điều này là tốt khi các thực thể của bạn được phân phối đồng đều. Cách tốt hơn là sử dụng một số cấu trúc phân cấp như kd-cây ... Nó thực sự tất cả phụ thuộc vào những gì bạn cần
để biết thêm thông tin bao gồm giả cái nhìn trong các bài thuyết trình:
http://www.ulozto.net/xCTidts/dpg06-pdf
http://www.ulozto.net/xoh6TSD/dpg07-pdf
Đối với những vấn đề sẽ áp dụng thuật toán này? KNN thực sự đơn giản và bạn có thể thử thực hiện cách tiếp cận của riêng bạn. –