Вот код Быстрый выборPython Быстрый выбор не печатает/возвращения пивот
def quickSelect(lst, k):
if len(lst) != 0:
pivot = lst[(len(lst)) // 2]
smallerList = []
for i in lst:
if i < pivot:
smallerList.append(i)
largerList = []
for i in lst:
if i > pivot:
largerList.append(i)
count = len(lst) - len(smallerList) - len(largerList)
m = len(smallerList)
if k >= m and k < m + count:
return pivot
print(pivot)
elif m > k:
return quickSelect(smallerList, k)
else:
return quickSelect(largerList, k-m-count)
вопрос я имею с ним в том, что он работает без ошибок или что-нибудь, но когда он завершает себя я жду его вывести что-то в оболочку python (в этом конкретном случае медиана списка), но я ничего не получил. Я здесь что-то не так?
Что касается того, что я для ввода LST и к ....
- LST = [70, 120, 170, 200]
- к = Len (ЛСТ) // 2
Я попробовал его с несколькими различными значениями K, а также, но безрезультатно
Может быть, просто плохое форматирование, но ваш отступ неправильный. Вы не отступаете после определения функции. –
Я просто запустил его (исправление отступов) и ваш вход для lst и k и quickSelect (lst, k) вернулся 170. Не могли бы вы сказать, как вы вызываете quickSelect и что ожидаете? Попробуйте выполнить печать (quickSelect (lst, k))), чтобы интерпретатор распечатывал результат. –