6. Сортировка в языке Python

☰ Теория

Встроенные методы сортировки 

В языке Python есть встроенная функция быстрой сортировки, которая называется sorted() и sort().  В своей работе она использует алгоритм Timsort.
Рассмотрим применение встроенных функций сортировки.
1) Получение нового массива B, который совпадает с отсортированным в порядке возрастания массивом A (по умолчанию выполняется сортировка по возрастанию):
B = sorted(A)
2) Получение нового массива B, который совпадает с отсортированным в порядке убывания массивом A:
B = sorted(A, reverse = True)
reverse - в переводе с английского языка "обратный".

3) Для выполнения нестандартной сортировки, необходим ключ сортировки - аргумент key.
Для сортировки по возрастанию по последней цифре числа ключом будет являться последняя цифра числа.
Для этого необходимо написать функцию, которая и будет возвращать нам требуемый ключ - в нашем случае последнюю цифру числа.
# функция, возвращающая ключ сортировки 
# - последнюю цифру числа
def lastDigit(n):
    return n%10

B = sorted(A, key = lastDigit)
4) Использование лямбда-функции - функции без имени.
Если не хочется писать отдельную функцию, из-за ее простоты, то можно использовать так называемые лямбда-функции. Такие функции записываются прямо при вызове в параметре key.
B = sorted(A, key = lambda x: x % 10)
5) Если необходимо отсортировать массив "на месте" (не выделяя дополнительный массив), лучше использовать метод sort().
Например, сортировка массива А по последней цифре в порядке убывания выглядит так:
A.sort(key = lambda x: x % 10, reverse = True)

Дан массив из N чисел.
Используя встроенные методы сортировки отсортируйте массив.
Заполните пропуски в программе.


 

Вставьте недостающие фрагменты кода
Python
1
# функция, которая возвращает сумму цифр числа n          
2
def sumDigits(n):          
3
4
5
6
7
8
n = int(input())          
9
A = list(map(int, input().split()))          
10
# новый массив B - отсортированный A по возрастанию          
11
12
print(*B)          
13
# новый массив C - отсортированный A по убыванию      
14
15
print(*C)          
16
# сортировка массива A, по сумме цифр числа,           
17
# в порядке возрастания, с использованием функции sumDigits          
18
19
print(*A)          
20
# сортировка массива С, по сумме цифр единиц и десятков,           
21
# в порядке убывания (c использованием лямбда-функции)          
22
23
print(*C)