Byłem zaskoczony, aby dowiedzieć się, że Array
i List
były dwa różne typy w Elm:Array vs listy w Elm
W moim przypadku, posiadam List Int
o długości 2 000 000 i potrzebuję około 10 000, ale nie wiem z góry, które dziesięć tysiąc. Zostanie to zapewnione przez inną listę. W Pseudokod:
x = [ 1,1,0,30,...,255,0,1 ]
y = [ 1,4,7,18,36,..., 1334823 , ... 1899876 ]
z = [ y[x[0]], y[x[1]], ... ]
Używam Pseudokod bo wyraźnie nie jest to składnia Elm (może to być legalne JavaScript).
Czy te selekcje można wykonać w List
lub Array
lub obu?
"Lista" jest strukturą listy połączonej, więc wyrażenie 'y [x [i]]' jest wyszukiwaniem O (n) dla 'i'th w' x' oraz innym wyszukiwaniem O (n) dla element w 'y'. Innymi słowy, dla 10000 wyszukiwań wśród elementów o wielkości 2 mil będzie to zbyt wolno. Użyj Array. –
Jeśli "y" nie zostanie posortowane, to inny algorytm zadziała –
Po prostu z ciekawości: jaki jest szerszy problem z twoim rozwiązywaniem, wybierając 10.000 elementów z listy 2.000.000 elementów? –