Ich war überrascht zu erfahren, dass Array
und List
zwei verschiedene Arten in Elm waren:Array vs Liste in Elm
In meinem Fall, ich habe eine List Int
von der Länge 2.000.000 und ich brauche etwa 10.000 von ihnen, aber ich weiß nicht im Voraus welche zehn tausend. Das wird von einer anderen Liste zur Verfügung gestellt. In Pseudo-Code:
x = [ 1,1,0,30,...,255,0,1 ]
y = [ 1,4,7,18,36,..., 1334823 , ... 1899876 ]
z = [ y[x[0]], y[x[1]], ... ]
Ich bin mit Pseudo-Code, da dies eindeutig nicht Elm Syntax ist (es könnte legal JavaScript sein).
Können diese Array-Auswahlen in List
oder Array
oder beiden vorgenommen werden?
'List' ist eine verkettete Listenstruktur, daher ist der Ausdruck' y [x [i]] 'ein O (n) Lookup für das' i'th in 'x' plus eine weitere O (n) Suche nach das Element in "y". Mit anderen Worten, für 10000 Lookups unter 2mil Elementen wird dies prohibitiv langsam sein. Verwenden Sie Array. –
Wenn 'y' nicht garantiert sortiert ist, dann funktioniert ein anderer Algorithmus –
Nur aus Neugier: Was ist das größere Problem, das Sie gelöst haben, indem Sie 10.000 Elemente aus einer 2.000.000 Elementliste ausgewählt haben? –