Porównywanie parami
Jednoczesne wyszukiwanie minimum i maksimum - Algorytmy: zakres rozszerzony (Python)
Sprytniej: bierzemy elementy parami i najpierw porównujemy je ze sobą. Mniejszy z pary może być tylko nowym minimum, a większy tylko nowym maksimum. Na parę przypadają 3 porównania zamiast 4, razem około 3n/2. Lista ma parzystą długość. Pierwsza para ustala początkowe minimum i maksimum.
data = [7, 2, 9, 4, 1, 8, 5, 6]
comparisons = 1
if data[0] < data[1]:
smallest, largest = data[0], data[1]
else:
smallest, largest = data[1], data[0]
for i in range(2, len(data), 2):
a, b = data[i], data[i + 1]
comparisons += 3
if a > b:
a, b = b, a
if a < smallest:
smallest = a
if b > largest:
largest = b
print("min =", smallest, "max =", largest)
print("porównania:", comparisons)Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.
Wszystkie lekcje kursu Algorytmy: zakres rozszerzony·Zaloguj się, aby zapisać postęp na koncie.