Určení minimální a maximální hodnoty v poli
V této části uvedeme algoritmus pro hledání minimální nebo maximální hodnoty. Předpokládáme, že hodnoty jsou uloženy v jednorozměrném poli a je určený jejich počet.
Určení nejmenší hodnoty
Algoritmus má 2 základní části. Nejdříve nastavíme počáteční hodnotu minima. Ideální je použít hodnotu z pole. Použijeme hned první hodnotu, což je v poli prvek s indexem 0.
V druhé části potom postupným porovnáváním hodnot v poli s aktuálním minimem určíme konečnou hodnotu minima.
Algoritmus pro určení minimální hodnoty:
- za aktuální minimum považujeme první prvek v poli
- procházíme postupně hodnoty v poli. Když je nějaký prvek menší než aktuální minimum, považujeme ho za nové minimum
V další části je uvedena funkce, ve které použijeme zmíněný algoritmus. Parametry funkce jsou pole s hodnotami a aktuální počet hodnot v poli. Typ návratové hodnoty je určen datovým typem minima (float).
float min_hodnota(float pole[], int pocet) { float min; int i, imin; min=pole[0]; //nastavení počáteční hodnoty minima for(i=1; i<pocet; i++) //procházení hodnot v poli if (pole[i]<min) //když je hodnota z pole menší než aktuální minimum { min=pole[i]; //přepíšeme hodnotu minima } return min; }
Při hledání minima nemusíme určovat jenom nejmenší hodnotu, ale často nás více zajímá její index (pozice) v poli. V algoritmu potom vždy, když nastavujeme hodnotu minima, nastavíme taky index hodnoty v poli. Při použití ve funkci nastavíme typ návratové hodnoty na int (budeme vracet pořadí hodnoty).
Určení největší hodnoty
Pokud hledáme maximální hodnotu, postupujeme podobně jako u minima.
Algoritmus pro určení maximální hodnoty:
- za aktuální maximum považujeme první prvek v poli
- procházíme postupně hodnoty v poli. Když je nějaký prvek větší než aktuální maximum, považujeme ho za nové maximum