@YaDelfinchik

Как написать алгоритм сортировки?

Начал изучать язык, сейчас нахожусь в разделе списков. Решил написать алгоритм который расставляет числа вбитые через пробел по убыванию. Хочу узнать, есть ли более простой способ сделать это, кроме автоматической функции sorted. Интерес чисто ученический, желание найти другой подход к алгоритму без введения более продвинутых функций, чем базовые.

КОД:

z = list(map(int, input().split()))
b = len(z)
x = []
c = []
v = []
                                 
tmp = -1

ask = True
while ask:
    for i in z:                           
        if i > tmp:
            tmp = i
            continue
        else:
            x = []
            x += [tmp]
            #print (x)

    for i in z:
        if i in x:
            c.extend([i])

    #print(c)
    v = []
    for i in z:
        if not (i in c):
            v.extend([i])
            
    z = v
    x = []
    tmp = 0
    if len(c) == b:
        ask = False

print(c)


Визуализация кода
запрос-получение списка

61b4d159b9536365286953.png

определение самого большого числа в списке

61b4d182503f7642294799.png

запись самого большого числа в новый список

61b4d18f32081694419818.png

получение вспомогательного списка без самого большого числа и его отправка повторную на фильтрацию

61b4d19e6ef75712888638.png

после того как новый список сравнялся длиной с изначальным цикл прерывается

61b4d1b1b36fc795275545.png
  • Вопрос задан
  • 188 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы