Suurim ja vähim väärtus
Milleks?
editArvujadas paikneval suurimal või väikseimal elemendil (nn miinimumil või maksimumil) võib olla oluline tähendus kogu jada suhtes. Suurimat või vähimat väärtust võib olla vaja leida ka mõne teise algoritmi koostisosana. Seetõttu tuleks teada, kuidas nimetatud väärtused massivist ülesleida.
Mitmed programmeerimiskeeled annavad kasutajale võimaluse jadast suurimat ja/või vähimat väärtust leida funktsiooni kasutades. Samas on tegemist väikese algoritmiga, mille toimispõhimõtet on kasulik mõista mitmel erineval põhjusel. Näiteks jada (väärtused), millest suurimat leida, ei pruugi nii selgelt esitatud olla (või ei pruugi kõik andmed korraga kättesaadavad olla). Väärtuse leidmine võib sõltuda veel mõnest tingimusest (a la pikim tüdruk). Ja lõpuks - seda ideed võib olla vaja kasutada mõnes veidi erinevas kontekstis ning iga täiendus meie standardalgoritmide tundmisesse teeb meid targemaks nüüd ja tulevikus.
Lisaks tasub arvestada ka sellega, et arvutit ei ole põhjust ülearu tööd tegema panna. Lõpuks võib see töökiirusele pahasti mõjuda, sest hoolimata sellest, et programmis seisab üks väike funktsiooni väljakutse, on seal taga ikka sama suur töö.
Suurima väärtuse leidmise idee
edit- Võtame kasutusele uue muutuja
maks
, mille väärtus töö lõpuks saab olema jadas paiknev suurim väärtus. - Omistame muutujale
maks
jada esimese elemendi väärtuse. - Teeme tsükli üle kõigi jadas olevate arvude ja iga arvuga:
- võrdleme iga arvu suurust muutujaga
maks
- kui jadas olev
arv > maks
, siis asendame muutujamaks
väärtuse selle sama võrreldud arvuga (ehk teeme tehte:arv = maks
)
- võrdleme iga arvu suurust muutujaga
(st leidsime uue arvu, mis võiks pretendeerida maksimumi nimele, kuna ta on kõigist senistest arvudest suurim).
Modifikatsioonid
editSellele algoritmile võib teha mitu modifikatsiooni:
- Maksimumi asemel saab leida miinimumi (selleks on vaja ainult märk võrdlustehtes ära vahetada).
- Maksimumi enda meelespidamise asemel peetakse meeles indeksit. Seda varianti saab kasutada vaid massiivi kasutades (kus indeksid on olemas). Kui indeks on teada, on ka arv alati kättesaadav.
Nimetatud modifikatsiooni plussiks on see, et sama järjenumbri järgi on võimalik andmeid leida ka teistest massiividest / listidest või teha muud vajalikku vastava indeksiga (näiteks kasutavad seda mõned sorteerimisalgoritmid).