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.