2 boyutlu düzlemde iki nokta noktam var. I noktası en yakın çifti bulmak istiyoruz s , t böyle s ∈ S , T ∈ T arasında ve Öklit mesafesi s , t mümkün olduğu kadar küçük olmalıdır. Bu ne kadar verimli bir şekilde yapılabilir? Bunun içinde yapılabilir O ( n log n ) zaman, n = | S | + | T | ?
Ben tek bir set tanýrsanýz biliyoruz , o zaman noktaları en yakın çifti bulmak mümkündür s , s ' ∈ S içinde Ç ( n log n ) saati kullanarak standart bir böl ve fethet algoritması . Bununla birlikte, bu algoritma iki küme için genelleştirilmiş görünmemektedir, çünkü S veya T içindeki en yakın iki nokta arasındaki mesafe ile bu setler arasındaki en yakın iki nokta arasındaki mesafe arasında bir bağlantı yoktur .
Ben seti depolamak düşünce bir de k her biri için, sonra -d ağacın s adlı ∈ S en yakın noktayı bulmak için, en yakındaki sorgu kullanarak, T için s . Ancak, bunun en kötü çalışma süresi O ( n 2 ) süresi kadar kötü olabilir . T noktaları rasgele dağıtılırsa, her sorgu için beklenen çalışma süresinin O ( log n ) olduğunu , bu nedenle beklenen çalışma süresine O ( n log n ) sahip bir algoritma elde edeceğimizi söyleyen sonuçlar vardır. Eğer noktaların rastgele dağıtıldığını garanti edersek - ancak herhangi bir nokta koleksiyonu için çalışacak bir algoritma arıyorum (mutlaka rastgele dağıtılmaz).
Motivasyon: Bu diğer soru için etkili bir algoritma yararlı olacaktır .