Mi chiedo quale sia l'approccio migliore per questo calcolo. Supponiamo di avere una matrice di input di valori e una matrice di limiti: volevo calcolare/benizzare la distribuzione di frequenza per ciascun segmento nell'array di limiti.Qual è il modo più veloce per calcolare la distribuzione di frequenza per array in C#?
È consigliabile utilizzare la ricerca del bucket per quello?
In realtà ho trovato questa domanda Calculating frequency distribution of a collection with .Net/C#
Ma io non capisco come utilizzare benne a tal fine causano la dimensione di ciascun benna può essere diversa nella mia situazione.
EDIT: Dopo tutte le discussioni ho una soluzione di loop interno/esterno, ma comunque voglio eliminare il ciclo interno con un dizionario per ottenere prestazioni O (n) in quel caso, se ho capito correttamente ho bisogno di hash input valori in un indice bucket. Quindi abbiamo bisogno di una sorta di funzione di hash con complessità O (1)? Qualche idea su come farlo?
Può descrivere la matrice confini un po 'meglio? Esiste una relazione tra i vari limiti (cioè sono sequenziali) o sono completamente casuali in termini di dimensioni e "posizione"? Presumo che la matrice dei limiti copra completamente la gamma di valori possibili - è vero? Inoltre, suppongo che non ci siano sovrapposizioni - giusto? –
più veloce nel significato della grande "O" o nel significato di piccolo codice? Un approccio semplice potrebbe essere quello di scrivere una funzione Func e utilizzarla con Linqs .GroupBy per raggrupparlo in "Secchi", ma potrebbero esserci modi di calcolo più veloci per farlo. –
Carsten
Sì, hai ragione. I valori al contorno stanno aumentando monotonicamente in valore. Non sono sovrapposizioni e coprono la gamma di valori possibili. Quindi, ad esempio: 0, 10, 50, 100, 120. – Andrey