Sono stato sorpreso di apprendere che Array
e List
erano due tipi diversi a Elm:Array vs List a Elm
Nel mio caso, ho avere un List Int
di lunghezza 2.000.000 e ho bisogno di circa 10.000 di loro ma non so in anticipo quali dieci mille. Questo sarà fornito da un'altra lista. In pseudocodice:
x = [ 1,1,0,30,...,255,0,1 ]
y = [ 1,4,7,18,36,..., 1334823 , ... 1899876 ]
z = [ y[x[0]], y[x[1]], ... ]
Sto usando pseudocodice perché chiaramente questo non è la sintassi Elm (potrebbe essere legale JavaScript).
Queste selezioni di array possono essere eseguite in List
o Array
o in entrambi?
'List' è una struttura a lista collegata, quindi l'espressione' y [x [i]] 'è una ricerca O (n) per' i'th in 'x' più un'altra ricerca O (n) per l'elemento in 'y'. In altre parole, per 10000 ricerche tra 2mil elementi questo sarà proibitivamente lento. Usa matrice. –
A meno che non sia garantito l'ordinamento di y, allora funzionerà un diverso algoritmo –
Solo per curiosità: qual è il problema più ampio della tua risoluzione selezionando 10.000 elementi da una lista di 2.000.000 di elementi? –