@Muriam

Как в пузырьковой сортировке подсчитать кол-во сранений и перестановок?

from random import randint

arr = [randint(1, 100) for _ in range(10)]

def bubble_sort():
    for i in range(9):
        for j in range(9 - i):
          #comparison += 1;                                # инкремент сравнений
            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
              #transfer += 1;                                 # инкремент пересылок

        
print('original array\n', *arr)
bubble_sort()    
print('bubble sort\n', *arr)
  • Вопрос задан
  • 292 просмотра
Решения вопроса 1
saboteur_kiev
@saboteur_kiev Куратор тега Python
software engineer
Указать переменные, которые вы используете внутри функции как глобальные и вывести их.

from random import randint
comparison = 0
transfer = 0

arr = [randint(1, 100) for _ in range(10)]

def bubble_sort():
    global comparison
    global transfer
    for i in range(9):
        for j in range(9 - i):
            comparison += 1
            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
                transfer += 1

print('original array\n', *arr)
bubble_sort()
print('bubble sort\n', *arr)
print('comparisons: ', comparison)
print('transfers: ',transfer)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы