Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Broj različitih elemenata niza

[es] :: Java :: Broj različitih elemenata niza

[ Pregleda: 4405 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
..et.174.106.194.in-addr.arpa.



+2 Profil

icon Broj različitih elemenata niza14.05.2008. u 13:12 - pre 193 meseci
Nisam dugo radio sa javom, a trebam da rešim jedan banalan zadatak.
Treba da se napravi funkcija koja određuje broj različitih elemenata nekog celobrojnog niza.
Ideja mi je bila da napravim jedan dinamički niz i jednu for petlju koja će da prolazi kroz sve elemente zadatog niza.
Ako ne nađe element u novom nizu, da proširi niz i doda taj element i na kraju da ispišem koliko elemenata ima novi niz i to je broj tih različitih elemenata niza.
Kako se prave dinamički nizovi u javi?
Znao bih zadatak da rešim pomoću kolekcija, ali bih hteo da se to odradi školski.
Dinamički niz bih mogao da pravim tako što bih uzeo taj novi niz, pa napravim temp čija je veličina novi.lenght + 1, kopiram vrednosti iz novog u temp, novi stavim na null da ga pokupi GC, i onda kažem da je novi = temp

Dajte mi neko elegantno rešenje
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
*.dynamic.sbb.rs.

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: Broj različitih elemenata niza14.05.2008. u 13:35 - pre 193 meseci
Koristi java.util.Set<Integer> , i ono sto tebi treba jeste Set.size() vec gotovo :)
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
..et.174.106.194.in-addr.arpa.



+2 Profil

icon Re: Broj različitih elemenata niza14.05.2008. u 13:59 - pre 193 meseci
Zadatak je za srednju školu tako da ne verujem da može da se koristi Util klasa.
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
*.dynamic.sbb.rs.

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: Broj različitih elemenata niza14.05.2008. u 14:19 - pre 193 meseci
Citat:
Pharos: Zadatak je za srednju školu tako da ne verujem da može da se koristi Util klasa.


U tom slucaju verovatno ni sort ne moze da prodje :) u principu da se sortira niz, a onda samo jednom prodje kroz niz i tada lako mozes da izbrojis razlicite. A ovako ako ni to ne moze, nemoj se zezati da prosirujes niz svako malo, vec odma napravi duzinu istu kao i originalni, cisto da nemas kopiranje niza svako malo.
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
*.adsl-1.sezampro.yu.



+2 Profil

icon Re: Broj različitih elemenata niza14.05.2008. u 20:03 - pre 193 meseci
Veoma elegantno rešenje.
Hvala!
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

_Abraxas
myth

Član broj: 154070
Poruke: 61
194.106.175.*



Profil

icon Re: Broj različitih elemenata niza20.05.2008. u 01:45 - pre 193 meseci
Citat:
Pharos
Treba da se napravi funkcija koja određuje broj različitih elemenata nekog celobrojnog niza.


Code:

//napravio bih svoju klasu koja se zove Niz i u njoj definisao potrebnu metodu koju kasnije mozes pozvati u nekoj drugoj metodi ili main metodi.
class Niz
{
    int tekBrElemenata;
    int[] nizElemenata;
    
    public Niz(int duzina)
    {
        nizElemenata = new int[duzina];
        tekBrElemenata = 0;
    }
//ovo je potreban metoda. Objasnjenje u nastavku...
            public int brojRazlicitih()
    {
        int brojRazlicitih = tekBrElemenata;
        for(int i = 0; i < tekBrElemenata - 1; i++)
        {
            for(int j = i + 1; j < tekBrElemenata; j++)
            {
                if(nizElemenata[j] == nizElemenata[i])
                {
                    brojRazlicitih--;
                }
            }
        }
        return brojRazlicitih;
    }
}


Koristio sam promenljivu tekBrElemenata, koja vodi racuna o tome koliko elemenata ima u nizu (posto, realno, niz i ne mora da bude pun). Kao pocetnu pretpostavku sam uzeo da se svi elementi niza razlikuju. Ideja je da kada metoda nadje dva ista elementa u nizu, brojRazlicitih se smanji za jedan. Na taj nacin cemo, nakon poredjenja, dobiti broj razlicitih elemenata u nizu.
Nadam se da je dovoljno elegantno. ;)
Pozdrav. :)
 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
*.dynamic.sbb.rs.

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: Broj različitih elemenata niza20.05.2008. u 14:32 - pre 193 meseci
Ne svidja mi se ovo gornje resenje iz prostog razloga jer mu je kompleksnost izvrsavanja O(n^2) sto je smrt. Bolje uzeti sortirati niz recimo preko Quick sorta koji ima slozenost O(n*log(n)) i uraditi jedan prolaz kroz petlju i izbrojati iste, tada su svi isti elementi jedan pored drugog.

Ali opet ako pricamo o praski HashSet i vozi misko.
 
Odgovor na temu

[es] :: Java :: Broj različitih elemenata niza

[ Pregleda: 4405 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.