Size düzlemdeki bir nokta listesi verilir, her bir noktayı, ona en yakın olan diğer üç noktayla birlikte gönderen bir program yazar. Bu üç nokta mesafeye göre sıralanır.2B düzlemdeki her bir noktaya en yakın üç noktayı bulma
1 2,3,4
2 1,3,4
3 1,2,4
4 1,2,3
5 4,3,1
Bu Bir:
1 0.0 0.0
2 10.1 -10.1
3 -12.2 12.2
4 38.3 38.3
5 79.99 179.99
İşletme programı çıktılayacaktır y koordinatı x koordinatı numarası: Her bir satır formunun olduğu noktalarda verilen bir dizi Örneğin
, Bir online Forumda bulduğum görüşme sorusu. Bir O (n * n) çözümü düşünebilirim: her noktanın her bir noktaya olan mesafesini hesaplayın. Bu nokta için minimum mesafe noktalarını döndürün. Diğer noktalar için işlemi tekrarlayın
Sorunuz nedir? O (N * N) 'den daha hızlı bir çözüm mü arıyorsunuz? – dasblinkenlight
Bu, özellikle hedef gerçek kodla gelmekse oldukça kötü bir röportaj sorusudur. Kabaca yaptığınız gibi, çalışma çözümünü (karmaşıklığı bazı durumlarda kabul edilebilir) elde etmek çok önemlidir, ancak bunu geliştirmek oldukça zordur. Özellikle hesaplamalı geometride kullanılan yapılar hakkında bir ipucunuz yoksa. Her neyse, "en yakın neighbo (u) r" için googling, size çok sayıda işaretçi vermelidir. İyi bir başlangıç [bu Wikipedia girişi] (http://en.wikipedia.org/wiki/Nearest_neighbor_search) –
@dasblinkenlight, o O (n^n) içinde çalıştırmak için algoritma arar. –