Napisano: 13 Nov 2017 7:30
U metodi ti je potrebna max promenljiva jer nju treba da setuješ i vratiš. Ona je inicijalitovana na -Infinity jer je to koliko toliko 'neutralna' vrednost u ovom slučaju, budući da je bilo koji broj veći od -Infinity. Glavni deo funkcije obavlja se nakon toga, i u bukvalnom prevodu to mu dođe ovako: 'Proći ću kroz sve elemente niza u kome tražim maksimalni element. Ukoliko je tekući element niza koji obrađujem veći od trenutnog maksimuma, maksimum preuzima vrednost tekućeg elementa niza.'
Na primeru niza A = [1, 2, 3] to bi bilo ovako:
- max = -Infinity
- i=0 => A[0] = 1 => 1 je veće od -Infinity, pa maks postaje 1
- i=1 => A[1] = 2 => 2 je veće od 1, pa maks postaje 2
- i=2 => A[2] = 3 => 3 je veće od 2, pa maks postaje 3
Dopuna: 13 Nov 2017 7:35
Što se tiče inicijalne vrednosti promenljive maks, ako još jednom pokušaš da shvatiš kod koji sledi iza te inicijalizacije, videćeš da ćeš tačan rezultat da dobiješ uvek kada promenljivu maks inicijalizuješ na broj koji je manji ili jednak realnom maksimalnom elementu niza. Ako imaš niz [1, 2, 3] i max inicijalno postaviš na 4, onda nećeš dobiti tačan rezultat. Zbog toga se koristi -Infinity, jer je to realno najmanji mogući broj, i bilo koji drugi je veći od njega.
Inače, možeš sasvim da izbegneš takav pristup ako uvedeš pretpostavku da je inicijalno prvi element niza maksimalni, pa onda iteriraš na isti ovaj način kroz ostatak niza.
|