Pary zamiast pojedynczych elementów
Jednoczesne wyszukiwanie minimum i maksimum parami - Informatyka - liceum klasa 2, zakres rozszerzony (Python)
Można szybciej niż `2n - 2`: bierz elementy **parami**. Najpierw porównaj elementy pary ze sobą (1 porównanie), potem mniejszy z bieżącym minimum, a większy z bieżącym maksimum (2 porównania). Na dwa elementy przypadają 3 porównania zamiast 4, razem około `3n/2`. Ten algorytm jest w podstawie programowej zakresu rozszerzonego.
values = [7, 3, 9, 1, 8, 4]
smallest, largest = min(values[0], values[1]), max(values[0], values[1])
comparisons = 1
for i in range(2, len(values), 2):
a, b = values[i], values[i + 1]
if a > b:
a, b = b, a
if a < smallest:
smallest = a
if b > largest:
largest = b
comparisons += 3
print("para", a, b, "-> min", smallest, "max", largest)
print("porównań:", comparisons, "zamiast", 2 * len(values) - 2)Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.
Wszystkie lekcje kursu Informatyka - liceum klasa 2, zakres rozszerzony·Zaloguj się, aby zapisać postęp na koncie.