( Aadaam | 2013. 01. 29., k – 03:01 )

esetleg hash-sel?

fogsz egy hash-t, edesmindegy, mi, mondjuk legyen egy HashMap.

HashMap<elem,array*> map = new HashMap<elem,array*>;
int osztalyok = 0;
for (index:elem in vector):
    if map.hasElem(elem):
        map[elem].push(index)
    else:
        map[elem] = new array<int>(index);
        osztalyok+=1;
return (osztalyok, map)

Ez egy gyakorlati megvalositas, igazabol te egy - optimalis esetben - n db. ordo(1)-es kulcskeresest vegzel el, ill. k. db. beillesztest (most ennek a koltsege azert fugg k es a hashtabla meretenek viszonyatol)

Lehet,hogy ennel van gyorsabb, sokminden fugg a konkret adat kardinalitasatol (azaz k-tol, ill. annak nagysagrendjetol), a hash algoritmustol, lehet, hogy egy masik indexelesi eljarast kell alkalmazni, de a rendezest en soknak erzem, remelem,annal azert ez gyorsabb realis esetekben.