Top.Mail.Ru

Перечень алгоритмов

7. Поиск второго по величине числа в списке

Дан список

a = [12, 15, 2, 80, 40]

 

Способ № 1. Использование сортировки

Отсортируем список в порядке возрастания и выведем предпоследний элемент в списке.

a = [12, 15, 2, 80, 40]
a.sort()
print("второй по величине=", a[-2])

# второй по величине= 40
Временная сложность: O (nlog n)

 

Способ № 2. Использование генератора списка

b = [x for x in a if x < max(a)]
print("второй по величине=", max(b))

# второй по величине= 40
Временная сложность: O (n)

 

Способ № 3.Использование функции enumerate()

mx=max(a)
b=[x
for i,x in enumerate(a) if x < mx]
print("второй по величине=", max(b))

# второй по величине= 40
Временная сложность: O (n)

 

Способ № 4.Использование цикла for функции max()

mx2 = 0
mx = min(a)
for x in a:
  
if x > mx:
       mx2 = mx
       mx = x
  
else:
       mx2 =
max(mx2, x)
print("второй по величине=", mx2)

# второй по величине= 40
Временная сложность: O (n)

 

Вы можете найти второе минимальной число списка, используя в рассмотренных способах функцию min(), функцию sort() или цикл for.