Looplex Knowledge Base
Sort
O tube sort recebe uma coleção e ordena seus valores em ordem ascendente ou descendente.
Formato:
|collection|.sort(order)
Parâmetros:
- collection: Lista ou vetor a ser ordenado.
- order: Método de ordenação. Opcional. Pode ser "asc" ou "desc". Default: "asc".
Retorno:
Retorna os elementos da coleção na ordem.
Exemplos:
1. Sort com vetor de String.
declarations { -|letras| : Vector[String] } operations { |letras|.add({"A","B","C","D","E"}), print |letras|.sort("desc") }
O exemplo acima printa a String "E, D, C, B e A".
No caso de vetores de Strings, a ordenação é feita de acordo com o código ASCII.
2. Sort com vetor de datas. Dado um vetor com as datas de utilização de um cartão de crédito, queremos utilizar a data do primeiro e do último uso do cartão. No entanto, não sabemos se o usuário preencheu o vetor necessariamente na ordem cronológica. Por isso, precisamos garantir que estamos usando os elementos corretos, não importa a ordem de preenchimento.
Primeiro, utilizamos o tube sort para ordenar o vetor de datas |usosCartao| na ordem cronológica. Então, podemos ter certeza de que o primeiro elemento do vetor corresponderá à primeira vez em que o cartão foi utilizado e o último elemento, à utilização mais recente. Acessamos o primeiro elemento do vetor por meio de indexação (índice 0) e o último elemento do vetor por meio do tube last.
declarations { +|usosCartao| : Vector[Date] { name = "Uso do cartão de crédito" request = "Insira as datas em que houve utilização do cartão do Autor para saques/compras" } } operations { |usosCartao|.sort(), print "O Autor nega ter contratado o cartão de crédito em questão. Esta alegação é infundada, tendo em vista que o Autor utilizou o referido cartão repetidas vezes, com usos que datam desde o dia " & |usosCartao{0}| & " até o dia ", print |usosCartao|.last(), print "." }
Note que não possível usar o tube sort para ordenar vetores de objetos.
Edit this page on GitHub