Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

Najoptimalniji algoritam(C/C++)

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Ostalo - ozbiljno -> Čistilište
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
Mali_42
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 18. 09. 2008. (09:11:58)
Postovi: (5F)16
Spol: muško
Sarma = la pohva - posuda
= 5 - 0
Lokacija: 3-sfera

PostPostano: 19:42 pon, 9. 11. 2009    Naslov: Najoptimalniji algoritam(C/C++) Citirajte i odgovorite

Problem je ovakav.
Imamo 3333 vektora iz |N^3. Treba naći 33 najčešćih elemenata na koordinatama.

Ja sam to zamislio ovako.
Uzmemo 2 polja: int a[9999], b[9999].
U polje a upišemo svaki od 3333 vektora redom.
Polje b postavimo for petljom da je nul polje.
Idemo dvostrukom for petljom ovako:
for(i=0; i<9999;i++){
for(j=0;j<9999;j++) if(a[i]==j) b[j]++;
}

Sada u polju b imamo pohranjeno koliko su se brojevi ponavljali.
For petljom nađemo maksimum u polju b i ispišemo 33 elementa manjih od tog maksimuma.

Da li se taj problem može rješiti na bolji način?
Problem je ovakav.
Imamo 3333 vektora iz |N^3. Treba naći 33 najčešćih elemenata na koordinatama.

Ja sam to zamislio ovako.
Uzmemo 2 polja: int a[9999], b[9999].
U polje a upišemo svaki od 3333 vektora redom.
Polje b postavimo for petljom da je nul polje.
Idemo dvostrukom for petljom ovako:
for(i=0; i<9999;i++){
for(j=0;j<9999;j++) if(a[i]==j) b[j]++;
}

Sada u polju b imamo pohranjeno koliko su se brojevi ponavljali.
For petljom nađemo maksimum u polju b i ispišemo 33 elementa manjih od tog maksimuma.

Da li se taj problem može rješiti na bolji način?




Zadnja promjena: Mali_42; 21:24 uto, 10. 11. 2009; ukupno mijenjano 1 put.
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 19:51 pon, 9. 11. 2009    Naslov: Citirajte i odgovorite

:shock:

Naravno da moze.

Iz nekog razloga, studenti imaju potrebu raditi petlju za svaki index niza. Cemu to?
Zar nije
[code:1]for(j=0;j<9999;j++) if(a[i]==j) b[j]++;[/code:1]
Isto sto i
[code:1]b[a[i]]++;[/code:1]
?

No, ovakav pristup ne hoda, jer nigdje ne pise da su koordinate danih vektora od 0 do 9999. Bez tog ogranicenja, stvar treba drugacije pamtiti, npr. kao niz [tt]struct[/tt]-ova.

Posto u subjectu pise C/[b]C++[/b], pogledaj [url=http://www.cppreference.com/wiki/stl/start]STL[/url]-ova asocijativna polja (cini mi se da je [url=http://www.cppreference.com/wiki/stl/multiset/start]Multiset[/url] idealan, no tebi se mozda vise svidi [url=http://www.cppreference.com/wiki/stl/map/start]Map[/url]).

Inace, "optimalan" znaci "najbolji", pa "najoptimalniji" nema smisla. ;)
Shocked

Naravno da moze.

Iz nekog razloga, studenti imaju potrebu raditi petlju za svaki index niza. Cemu to?
Zar nije
Kod:
for(j=0;j<9999;j++) if(a[i]==j) b[j]++;

Isto sto i
Kod:
b[a[i]]++;

?

No, ovakav pristup ne hoda, jer nigdje ne pise da su koordinate danih vektora od 0 do 9999. Bez tog ogranicenja, stvar treba drugacije pamtiti, npr. kao niz struct-ova.

Posto u subjectu pise C/C++, pogledaj STL-ova asocijativna polja (cini mi se da je Multiset idealan, no tebi se mozda vise svidi Map).

Inace, "optimalan" znaci "najbolji", pa "najoptimalniji" nema smisla. Wink



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
ma
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 27. 01. 2007. (12:06:50)
Postovi: (347)16
Spol: muško
Sarma = la pohva - posuda
58 = 89 - 31

PostPostano: 20:43 pon, 9. 11. 2009    Naslov: Citirajte i odgovorite

[quote="vsego"]Inace, "optimalan" znaci "najbolji", pa "najoptimalniji" nema smisla. ;)[/quote]

:OT:
tzv. pleonazam.
vsego (napisa):
Inace, "optimalan" znaci "najbolji", pa "najoptimalniji" nema smisla. Wink


Off-topic
tzv. pleonazam.



_________________
ima let u finish
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Mali_42
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 18. 09. 2008. (09:11:58)
Postovi: (5F)16
Spol: muško
Sarma = la pohva - posuda
= 5 - 0
Lokacija: 3-sfera

PostPostano: 17:29 uto, 10. 11. 2009    Naslov: Citirajte i odgovorite

[quote="vsego"]
No, ovakav pristup ne hoda, jer nigdje ne pise da su koordinate danih vektora od 0 do 9999. Bez tog ogranicenja, stvar treba drugacije pamtiti, npr. kao niz [tt]struct[/tt]-ova.
[/quote]

Mislio sam svaki vektor od 3 koordinate prepisati u novi vektor od 9999 koordinata pa po tom novom vektoru švrljati :D
vsego (napisa):

No, ovakav pristup ne hoda, jer nigdje ne pise da su koordinate danih vektora od 0 do 9999. Bez tog ogranicenja, stvar treba drugacije pamtiti, npr. kao niz struct-ova.


Mislio sam svaki vektor od 3 koordinate prepisati u novi vektor od 9999 koordinata pa po tom novom vektoru švrljati Very Happy


[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 17:39 uto, 10. 11. 2009    Naslov: Citirajte i odgovorite

Pricam o nizu [tt]b[/tt]; njegovi indexi nemaju razloga biti od 0 do 9999.
Pricam o nizu b; njegovi indexi nemaju razloga biti od 0 do 9999.



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Ostalo - ozbiljno -> Čistilište Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You can attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan