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