Keresés

Hirdetés

Új hozzászólás Aktív témák

  • Gyuri16

    senior tag

    válasz mrbig25 #1217 üzenetére

    tobb egyszeru megoldas is van erre, kellene ismerni a konkret korulmenyeket.

    ha tudod hogy nem tul sok fajta szam lesz (mondjuk max 100) viszont ezekbol sok (ertsd: a legtobb szam tobbszor is lesz), akkor csinalsz egy akkora tombot, kinullazod. aztan veszed a szamaid sorban, es a tombben azon az indexen levo erteket egyel noveled. igy a vegen megkapod a 100as tombben, hogy melyik szambol mennyi volt.

    ha nagy intervallumbol lehetnek a szamok, ill tul nagy pazarlas lenne a tomb (nagy ugrasok vannak a szamok kozott), akkor lancolt listaval lehet probalkozni (a lista minden eleme tartalmazza a szamot, es a gyakorisagat + pointert a kovetkezo elemre). nagyvonalakban:
    x=kovetkezo szam a tombbol
    atfutod a lancolt listat, van e mar ott x ertek
    -ha igen, akkor noveled ott a gyakorisagot
    -ha nem, akkor a megfelelo helyre beszurod (akar rakhatod a vegere is, de ha sorbarendezve lesz, akkor valamivel gyorsabb lesz), es a gyakorisagot beallitod 1-re
    kezded elolrol, amig van szam

    az elso algoritmus linearis idoben fut, viszont a felhasznalt memoria fugg a legnagyobb vart szamtol.
    a masik algoritmus kvadratikus idoben fut, es a memoria linearisan fugg a kulonbozo ertekek szamatol

    Nem vagyok egoista, csak uborkagyalu!

Új hozzászólás Aktív témák