Wyszukiwanie minimum i maksimum¶
Opis problemu¶
Wyszukiwanie wartości minimum i maksimum¶
Funkcja find_min_max działa w następujący sposób:
- Inicjalizuje zmienne
min_valimax_valjako pierwszy element listy. - Przechodzi przez listę od drugiego elementu do końca.
- Jeżeli wartość aktualnego elementu
tab[i]jest mniejsza odmin_val, aktualizujemin_valnatab[i]. - Jeżeli wartość aktualnego elementu
tab[i]jest większa odmax_val, aktualizujemax_valnatab[i]. - Po przejściu przez całą listę, zwraca krotkę
(min_val, max_val), która zawiera minimalną i maksymalną wartość w liście.
W głównej części programu:
- Definiuje listę
tabz \(10\) elementami. - Używa funkcji
find_min_maxdo znalezienia minimalnej i maksymalnej wartości w liście. - Wyświetla te wartości na ekranie.
Wyszukiwanie indeksów wartości minimum i maksimum¶
Funkcja find_min_max_ind działa następująco:
- Zaczyna od zainicjowania
min_indimax_indjako \(0\) - indeksy pierwszego elementu listy. - Przechodzi przez listę od drugiego elementu do końca.
- Jeżeli aktualny element
tab[i]jest mniejszy niż element na pozycjimin_ind, aktualizujemin_indna \(i\). - Jeżeli aktualny element
tab[i]jest większy niż element na pozycjimax_ind, aktualizujemax_indna \(i\). - Po przejściu przez całą listę, zwraca krotkę
(min_ind, max_ind), która zawiera indeksy minimalnej i maksymalnej wartości w liście.
W głównej części programu:
- Tworzy listę
tabz \(10\) elementami. - Wywołuje funkcję
find_min_max_ind, która zwraca indeksy minimalnej i maksymalnej wartości w liście. - Wyświetla te indeksy na ekranie.
Podobnie jak poprzedni program, ten program jest efektywny, ponieważ zamiast przechodzić przez listę dwa razy (raz do znalezienia indeksu minimum, raz do znalezienia indeksu maksimum), robi to tylko raz, co jest szybsze dla dużych list.