1. Главная
  2. Библиотека
  3. Программирование
  4. Какая из приведенных функций выполнит сортировку пузырь...
Решение задачи

Какая из приведенных функций выполнит сортировку пузырьком по убыванию? 1) def F2(a): ⠀⠀n = len(a) ⠀⠀for i in range(n): ⠀⠀⠀⠀minidx = i ⠀⠀⠀⠀for j in range(i + 1, len(a)): ⠀⠀⠀⠀⠀⠀if a[j] < a[minidx]: ⠀⠀⠀⠀⠀⠀⠀⠀minidx = j ⠀⠀return a 3) def F1(a): ⠀⠀n = len(a)

  • Программирование

Условие:

Какая из приведенных функций выполнит сортировку пузырьком по убыванию?

1)

def F2(a):

⠀⠀n = len(a)

⠀⠀for i in range(n):

⠀⠀⠀⠀minidx = i

⠀⠀⠀⠀for j in range(i + 1, len(a)):

⠀⠀⠀⠀⠀⠀if a[j] < a[minidx]:

⠀⠀⠀⠀⠀⠀⠀⠀minidx = j

⠀⠀return a

3)

def F1(a):

⠀⠀n = len(a)

⠀⠀for i in range(n):

⠀⠀⠀for j in range(0, n – i – 1):

⠀⠀⠀⠀⠀⠀if a[j] > a[j + 1]:

⠀⠀⠀⠀⠀⠀⠀⠀a[j], a[j + 1] = a[j + 1], a[j]

⠀⠀return a

2)

def F1(a):

⠀⠀n = len(a)

⠀⠀for i in range(n):

⠀⠀⠀for j in range(0, n – i – 1):

⠀⠀⠀⠀⠀⠀if a[j] < a[j + 1]:

⠀⠀⠀⠀⠀⠀⠀⠀a[j], a[j + 1] = a[j + 1], a[j]

⠀⠀return a

4)

def F2(a):

⠀⠀n = len(a)

⠀⠀for i in range(n):

⠀⠀⠀⠀minidx = i

⠀⠀⠀⠀for j in range(i + 1, len(a)):

⠀⠀⠀⠀⠀⠀if a[j] > a[minidx]:

⠀⠀⠀⠀⠀⠀⠀⠀minidx = j

⠀⠀return a

Решение:

Мы должны найти функцию, которая реализует сортировку пузырьком по убыванию, то есть функция, которая сравнивает соседние элементы и меняет их местами, если порядок нарушен (при убывании – если предыдущий элемент меньше следующего). Рассмотрим по порядку код каждой функции: 1) Функция F2:   def F2(a):    n = len(a)    for i in range(n):     minidx = i     for j in range(i + 1, len(a)):      if a[j] a[minidx]:       minidx = j    return a Здесь используется поиск минимума (типичный для сортировки выбором), а не сравнение соседних элементов с последующим обменом. Поэтому эта ф...

Не нашел нужную задачу?

Воспользуйся поиском

Выбери предмет