Debido a que las matrices son un objeto fundamental en Ruby y otros lenguajes de programación, Ruby proporciona una forma de ordenar elementos sin escribir un excelente algoritmo personalizado.
Esta guía le enseñará cómo ordenar una matriz utilizando los métodos y funcionalidades incorporados de Ruby.
Cómo ordenar una matriz
Ruby proporciona varias formas de ordenar una matriz. Los métodos Sort y Sort_by en Ruby son algunos de los más fundamentales para clasificar una matriz.
#1: Uso del método de clasificación
El método de clasificación se define en el módulo enumerable, y devuelve los valores de la matriz ordenado.
Por ejemplo:
Nums = [1,20, 23, 28, 2, 100, 34, 53, 22, 21, 11]Por defecto, el método devolverá los elementos en la matriz ordenada en orden ascendente.
Funciona usando el operador de naves espaciales, que devuelve 1 si un valor es mayor que, 0 para igual a y -1 para menos de.
Si proporciona una variedad de cadenas, la matriz ordenada estará en orden alfabético como:
Bases de datos = %W MySQL, PostgreSQL, Redis, Memcached, MongoDB, ElasticsearchPuede pasar un bloque a la función de clasificación si desea implementar un orden de clasificación personalizado. Por ejemplo, lo siguiente implementa un orden inverso utilizando el método de clasificación.
Nums = [1, 2, 11, 20, 21, 22, 23, 28, 34, 53, 100]Ruby también le permite ordenar una matriz en su lugar usando el tipo! método. El método afectará el método original en la nueva matriz ordenada como:
Nums = [1, 2, 11, 20, 21, 22, 23, 28, 34, 53, 100]Nota: usa el tipo! método con precaución; sobrescribe la matriz original, como se muestra en el ejemplo anterior.
#2: método sort_by
El método sort_by proporciona flexibilidad al clasificar en comparación con el método de clasificación. Veamos algunos ejemplos para ver cómo funciona la clasificación usando el método Sort_by.
El primer ejemplo es clasificar por la longitud de una cadena.
bases de datos = ["elasticsearch", "memcached", "mongodb", "mysql", "postgreSQL,", "redis"]La clasificación de los elementos en la matriz ocurre en orden ascendente basado en la longitud del contenido de la cadena.
Utilizamos la propiedad de longitud de la cadena como el método sort_by espera un valor numérico.
Supongamos que queremos ordenar la cadena en orden inverso utilizando el método sort_by? En tal caso, podemos agregar un operador menos en longitud, como se muestra a continuación:
bases de datos = ["elasticsearch", "memcached", "mongodb", "mysql", "postgreSQL,", "redis"]El ejemplo anterior devolverá la matriz ordenada en orden descendente.
Clausura
Esta guía le ha mostrado cómo trabajar con matrices y clasificarlas utilizando métodos de rubí incorporados.