Функция для сортировки списка по убыванию и возрастанию python

Рейтинг: 0Ответов: 1Опубликовано: 25.02.2023

Есть функция по возрастанию, нужно добавить сюда чтобы еще сортировать по убыванию.

def max1(a):
    if len(a)==1:
        return 0
    elif len(a)==2:
        if a[0]>a[1]:
            return a[0]
        else:
            return a[1]
    else:
        z=max1(a[0:len(a)//2])
        y=max1(a[len(a)//2:])
        if y>z:
            return y
        else:
            return z
def sort(a):
    if len(a)<=1:
        return a
    elif len(a)==2:
        if a[0]>a[1]:
             return a[::-1]
        else:
            return a
    else:
        z=len(a)//2
        o=a[z]
        left,right=[],[]
        for i in range(len(a)):
            if a[i]<=o and i!=z:
                left.append(a[i])
            elif a[i]>o:
                right.append(a[i])
                y=max1 (a[len(a)//2:])
        return sort(left)+[o]+sort(right)
print(sort([2,6,2,6,33,7,3]))

Ответы

▲ 0
def max1(a):
    if len(a)==1:
        return 0
    elif len(a)==2:
        if a[0]>a[1]:
            return a[0]
        else:
            return a[1]
    else:
        z=max1(a[0:len(a)//2])
        y=max1(a[len(a)//2:])
        if y>z:
            return y
        else:
            return z

        
def sort_bigger(a):
    if len(a)<=1:
        return a
    elif len(a)==2:
        if a[0]>a[1]:
             return a[::-1]
        else:
            return a
    else:
        z=len(a)//2
        o=a[z]
        left,right=[],[]
        for i in range(len(a)):
            if a[i]<=o and i!=z:
                left.append(a[i])
            elif a[i]>o:
                right.append(a[i])
                y=max1 (a[len(a)//2:])
        return sort_bigger(left)+[o]+sort_bigger(right)


def sort_smaller(a):
    if len(a)<=1:
        return a
    elif len(a)==2:
        if a[0]<a[1]:
             return a[::-1]
        else:
            return a
    else:
        z=len(a)//2
        o=a[z]
        left,right=[],[]
        for i in range(len(a)):
            if a[i]<=o and i!=z:
                left.append(a[i])
            elif a[i]>o:
                right.append(a[i])
                y=max1 (a[len(a)//2:])
        return sort_smaller(right)+[o]+sort_smaller(left)
    
print(sort_bigger([2,6,2,6,33,7,3]))
print(sort_smaller([2,6,2,6,33,7,3]))

Как-то так? Или нужна одна функция?