Estoy tratando de forma inteligente bin una colección ordenada. Tengo una colección de $n$ piezas de datos. Pero sé que este tipo de datos se ajusta a $m$ desigualmente tamaño de los contenedores. No sé cómo elegir de forma inteligente los extremos para encajar correctamente los datos. por ejemplo:
Decir que tengo 12 artículos en mi colección, y sé que los datos caben en 3 compartimientos:
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
¿Cómo puedo elegir de forma inteligente a mi los breakpoints para las tolvas de $i = \{1-3\}, \{4-9\}, \{10-12\}$?
La implementación actual tengo divide los datos en tamaño uniforme de las papeleras y, a continuación, toma el promedio de los extremos para encontrar los índices para el final de la basura. Así es como funciona:
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
Así que ahora cualquier cosa por debajo de 3 encaja en la bandeja 1, cualquier cosa por encima de 3, pero por debajo de 3 encaja en la bandeja 2, y cualquier cosa por encima de 3 quepa en el recipiente 3. Usted puede ver lo que mi problema es. Si los datos se desigual de las papeleras de mi método falla.
Un amigo mencionó el k-vecino más cercano algoritmo, pero no estoy seguro.