Como as matrizes são um objeto fundamental em Ruby e outras linguagens de programação, Ruby fornece uma maneira de classificar elementos sem escrever um excelente algoritmo personalizado.
Este guia ensinará como classificar uma matriz usando os métodos e funcionalidades internos de Ruby.
Como classificar uma matriz
Ruby fornece várias maneiras de classificar uma matriz. Os métodos Sort and Sort_by em Ruby são alguns dos mais fundamentais para classificar uma matriz.
#1: Usando o método de classificação
O método de classificação é definido no módulo enumerável e retorna os valores da matriz classificada.
Por exemplo:
NUMS = [1,20, 23, 28, 2, 100, 34, 53, 22, 21, 11]Por padrão, o método retornará os itens na matriz classificada em ordem crescente.
Funciona usando o operador de naves espaciais, que retorna 1 se um valor for maior que, 0 para igual a e -1 para menos que.
Se você fornecer uma variedade de cordas, a matriz classificada estará em ordem alfabética como:
bancos de dados = %w mysql, pósgresql, redis, memcached, mongodb, elasticsearchVocê pode passar um bloco para a função de classificação se quiser implementar um pedido de classificação personalizado. Por exemplo, o seguinte implementa uma ordem reversa usando o método de classificação.
NUMS = [1, 2, 11, 20, 21, 22, 23, 28, 34, 53, 100]Ruby também permite que você classifique uma matriz no lugar usando o tipo! método. O método afetará o método original na nova matriz classificada como:
NUMS = [1, 2, 11, 20, 21, 22, 23, 28, 34, 53, 100]Nota: Use o tipo! método com cautela; Ele substitui a matriz original, como mostrado no exemplo acima.
#2: Método Sort_by
O método Sort_By fornece flexibilidade ao classificar em comparação com o método de classificação. Vejamos alguns exemplos para ver como a classificação usando o método Sort_by funciona.
O primeiro exemplo é classificar pelo comprimento de uma corda.
Bancos de dados = ["Elasticsearch", "Memcached", "MongoDB", "MySQL", "PostgreSQL", "Redis"]Classificação dos elementos da matriz acontece em ordem ascendente com base no comprimento do conteúdo da string.
Usamos a propriedade de comprimento da string, pois o método Sort_by espera um valor numérico.
Suponha que queremos classificar a string em ordem inversa usando o método Sort_by? Nesse caso, podemos adicionar um operador menos comprimento, como mostrado abaixo:
Bancos de dados = ["Elasticsearch", "Memcached", "MongoDB", "MySQL", "PostgreSQL", "Redis"]O exemplo acima retornará a matriz classificada em ordem decrescente.
Fechamento
Este guia mostrou como trabalhar com matrizes e classificá-las usando métodos de rubi embutidos.