Izbor optimalnog algoritma u PHP
Ponekad problem koda može biti povezan sa tim, da nije izabrano najoptimalnije rešenje zadatka.
Recimo, na primer, pred nama stoji zadatak
da nađemo zbir celih brojeva od 1 do 1000000.
Rešimo postavljeni zadatak:
<?php
$sum = 0;
for ($i = 1; $i <= 1000000; $i++) {
$sum += $i;
}
echo $sum;
?>
Šta je onda problem? Stvar je u tome, što za rešavanje postavljenog zadatka postoji matematičko rešenje.
Ovo rešenje praktično ne zahteva resurse! Isprogramirajmo ga:
<?php
$n = 1000000;
$sum = $n * ($n + 1) / 2;
echo $sum;
?>
Morala: pre rešavanja resursno zahtevnog zadatka obavezno proverite da li ne postoji gotova matematička formula ili gotov matematički pristup za njegovo rešenje.
Pronađite koliko brojeva, deljivih bez ostatka
sa 5, ima u intervalu od 1 do
1000.
Pronađite koliko će cifra biti potrebno,
da se zapišu svi brojevi od 1 do 1000000.
Pronađite sve proste brojeve u intervalu od
1 do 10000. Zadatak sa zvezdicom,
možete ga ne rešavati.