Akıllı bir şekilde sıralanmış bir koleksiyon bin çalışıyorum. adet veri koleksiyonum var . Ama içine bu veri uyan biliyoruz eşit olmayan bidonları büyüklüğünde. Verilere tam olarak uyacak şekilde uç noktaları akıllıca nasıl seçeceğimi bilmiyorum. Örneğin:m
Koleksiyonumda 12 ürün olduğunu ve verilerin 3 kutuya sığacağını biliyorum:
Index: 1 2 3 4 5 6 7 8 9 10 11 12
Value: 1 1 1 3 3 3 3 3 3 5 5 6
kutuları için kesme noktalarını nasıl akıllıca seçebilirim ?
Mevcut uygulama, verileri eşit boyutlu kutulara ayırır ve daha sonra kutuların sonu için endeksleri bulmak için uç noktaların ortalamasını alır. Yani şu şekilde çalışır:
Index: 1 2 3 4 5 6 7 8 9 10 11 12
Value: 1 1 1 3 3 3 3 3 3 5 5 6
first break evenly: i = 1-4, 5-8, 9-12
mean endpoints: between 4 and 5: (3+3)/2 = 3
between 8 and 9: (3+3)/2 = 3
Yani şimdi kutu 1'de 3'ün altında olan herhangi bir şey, kutu 2'de 3'ün üzerinde ancak 3'ün altında olan herhangi bir şey ve kutu 3'te 3'ün üzerinde olan herhangi bir şey. Sorunumun ne olduğunu görebilirsiniz. Verilerin eşit olmayan bölmeleri varsa yöntemim başarısız olur.
Bir arkadaşım k-en yakın komşu algoritmasından bahsetti ama emin değilim.