[ Mr. Bond @ 25.05.2009. 07:10 ] @
Nisam znao kako drugacije da dam naziv temi jer ni sam ne znam kako da nazovem ono sto trazim :) Naime imam dvostruko ulancanu listu pokazivaca na strukturu koja sadrzi informacije o pesmi (trajanje, ime izvodjaca, ime pesme i putanju). Osnovni problem mi je bio da konvertujem PLS u ASX sto nije nikakav problem.

E sad od mene traze da nadjem izvodjaca koji u datoj listi ima najvise pesama. Ne mogu nikako da skontam algoritam za tako nesto. Jedini koji mi pada na pamet jeste da za SVAKU pesmu prebrojim koliko se puta taj izvodjac pojavljuje u celoj listi, pa ako je veci od maximuma (odnosno od prethodnog koji se najvise puta ponavljao) da upamtim njegovo ime i broj pesama.

Medjutim to mi deluje kao vremenski zahtevan algoritam a ja bih nesto optimalnije pa ako ima nekih predloga bio bih zahvalan :)

Inace program se realizuje u C-u sto i nije od neke vaznosti. Nije problem napisati kod - problem je da skontam kako da uopste to trazim :)
[ vlaiv @ 25.05.2009. 07:55 ] @
Formiraj praznu listu izvodjaca i jedne integer vrednost, neka bude count
Prodji kroz listu pesama jedanput, za svaku pesmu uzmi izvodjaca i
proveri da li postoji u listi izvodjaca.

ako postoji, uvecaj njegov count za 1
ako ne postoji, dodaj ga na kraj liste sa count = 1

kada si proshao kroz listu uradi sledece:

postavi max_count na count prvog izvodjaca iz liste
i max_izvodjac na prvog izvodjaca iz liste

prodji kroz listu izvodjaca i za svakog

if max_count<count ondak

max_count = count
max_izvodjac = izvodjac



kada zavrsis ovaj prolaz u
max_izvodjac ce ti biti onaj izvodjac cije se pesme pojavljuju najveci broj puta
a u max_count ces imat broj njegovih pesama.
[ Mihajlo Cvetanović @ 25.05.2009. 10:17 ] @
Ko što vlaiv kaže, s tim što bih ja tu drugu listu održavao zajedno sa originalnom. Manipulacija u originalnoj listi automatski treba da se ogleda i u drugoj listi.

A ako dobiješ još neki zahtev onda uvedeš i treći kontejner koji ti taj zahtev ispunjava. Ti kontejneri su ti kao indeksi u klasičnoj bazi podataka. Uzgred, baš bi mogao i da koristiš bazu, jer to što ti praviš je zapravo baza u memoriji.
[ Mr. Bond @ 25.05.2009. 17:19 ] @
U principu moglo bi ovo daleko elegantnije ali zadatak je iz Praktikuma iz Programiranja 2 na I godini pa jos uvek samo C smemo da koristimo :))

Inace hvala puno na pomoci ovako cu i da uradim ;)