Métodos de classificação integrados
O Python tem uma função de classificação rápida integrada chamada
sorted()
e
sort()
. Ele usa o
Timsort
.
Considere usar as funções internas de classificação.
1) Obtendo uma nova matriz
B
que corresponda à matriz
A
classificada em ordem crescente (por padrão, classificação em ordem crescente):
B = classificado(A)
2) Obtendo um novo array B
que corresponda ao array A
classificado em ordem decrescente:
B = ordenado(A, reverso = Verdadeiro)
reverse - traduzido do inglês "reverse".
3) Para executar a classificação não padrão, é necessária uma chave de classificação - o argumento key
.
Para classificar em ordem crescente pelo último dígito de um número, a chave será o último dígito do número.
Para fazer isso, você precisa escrever uma função que nos retorne a chave necessária - no nosso caso, o último dígito do número.
# uma função que retorna a chave de classificação
# - o último dígito do número
def último dígito(n):
retornar n% 10
B = classificado(A, chave = lastDigit)
4) Usando a função lambda - função sem nome.
Se você não deseja escrever uma função separada, devido à sua simplicidade, pode usar as chamadas funções lambda. Tais funções são escritas diretamente quando chamadas no parâmetro key
.
B = classificado(A, chave = lambda x: x % 10)
5) Se você precisar classificar a matriz "no local" (sem alocar um array extra), é melhor usar o método sort()
.
Por exemplo, classificar o array A
pelo último dígito em ordem decrescente se parece com isto:
A.sort(key = lambda x: x % 10, reverse = True)