Проблемы, возникающие при сортировке пузырьков по случайным числам в python - PullRequest
0 голосов
/ 28 апреля 2020

Мой папа пытается заставить меня научиться кодировать во время карантина, поэтому сказал мне сделать случайную числовую сортировку в python. Пользователь предназначен для ввода, если он хочет увидеть числа от самых больших до самых маленьких и наоборот, а затем создать список случайных чисел и отсортировать их. Я немного застрял и не знаю, где go.

Вот код

import random


def bubble_sort(list):
    # We go through the list as many times as there are elements
    for i in range(len(list)):
        # We want the last pair of adjacent elements to be (n-2, n-1)
        for j in range(len(list) - 1):
            if list[j] > list[j+1]:
                # Swap
                list[j], list[j+1] = list[j+1], list[j]





correct=False
upordownuni=False

list = []

for i in range(0,100):
    x = random.randint(1,10)
    list.append(x)


while correct==False:
    print("Do you want the list to be sorted up or down?")
    upordown = input ("Type up or down for what you want\n")
    if upordown==("up"):
        upordownuni=True
        break
        bubble_sort()
    elif upordown==("down"):
            break
            bubble_sort()
    else:
        print("Invalid! Please input up or down.")

1 Ответ

0 голосов
/ 28 апреля 2020

Ну, тебе это не нужно break. Я бы положил вызов bubblesort() вне блока if / elif. Это то, что бросается в глаза.

Обновление: вашей функции bubblesort требуется параметр списка для сортировки; вызов функции не передает этот параметр.

В Python list не следует использовать в качестве имени переменной, поскольку это Python зарезервированное слово.

...