Array Sort Ruby

Array Sort Ruby
Ruby er et forenklet og kraftig programmeringsspråk som gir eksepsjonelle funksjoner for daglig programmeringsoperasjoner.

Fordi matriser er et grunnleggende objekt i Ruby og andre programmeringsspråk, gir Ruby en måte å sortere elementer på uten å skrive en utmerket tilpasset algoritme.

Denne guiden vil lære deg hvordan du sorterer en matrise ved å bruke Rubys innebygde metoder og funksjonaliteter.

Hvordan sortere en matrise

Ruby gir forskjellige måter å sortere en matrise. Sorterings- og sort_by -metodene i Ruby er noe av de mest grunnleggende for å sortere en matrise.

#1: Bruke sorteringsmetoden

Sorteringsmetoden er definert i den enumerbare modulen, og den returnerer verdiene til matrisen sortert.

For eksempel:

Nums = [1,20, 23, 28, 2, 100, 34, 53, 22, 21, 11]
utskriftsnumre.sortere
[1, 2, 11, 20, 21, 22, 23, 28, 34, 53, 100]

Som standard vil metoden returnere elementene i matrisen sortert i stigende rekkefølge.

Det fungerer ved å bruke romskipets operatør, som returnerer 1 hvis en verdi er større enn, 0 for lik og -1 for mindre enn.

Hvis du gir en rekke strenger, vil den sorterte matrisen være i alfabetisk rekkefølge som:

Databaser = %W MySQL, PostgreSql, Redis, Memcached, MongoDB, Elasticsearch
Skriv ut databaser.sortere
["Elasticsearch", "Memcached,", "Mongodb,", "MySQL,", "PostgreSql,", "Redis,"]

Du kan gi en blokk til sorteringsfunksjonen hvis du vil implementere en tilpasset sorteringsrekkefølge. Følgende implementerer for eksempel en omvendt rekkefølge ved hjelp av sorteringsmetoden.

Nums = [1, 2, 11, 20, 21, 22, 23, 28, 34, 53, 100]
utskriftsnumre.Sorter | x, y | y x
[100, 53, 34, 28, 23, 22, 21, 20, 11, 2, 1]

Ruby lar deg også sortere en matrise på plass ved hjelp av sorteringen! metode. Metoden vil påvirke den opprinnelige metoden i den nye sorterte matrisen som:

Nums = [1, 2, 11, 20, 21, 22, 23, 28, 34, 53, 100]
Numre.sortere!
utskriftsnumre
[1, 2, 11, 20, 21, 22, 23, 28, 34, 53, 100]

Merk: Bruk sorteringen! metode med forsiktighet; Den overskriver den originale matrisen, som vist i eksemplet over.

#2: sort_by -metoden

Sort_by -metoden gir fleksibilitet når du sorterer sammenlignet med sorteringsmetoden. La oss se på noen få eksempler for å se hvordan sortering ved bruk av sort_by -metoden fungerer.

Det første eksemplet er å sortere etter lengden på en streng.

Databaser = ["Elasticsearch", "Memcached,", "MongoDB,", "MySQL,", "PostgreSql,", "Redis"]
Skriv ut databaser.sort_by | innhold | innhold.lengde
["Redis", "MySQL,", "Mongodb,", "Memcached,", "PostgreSql,", "Elasticsearch"]

Sortering av elementene i matrisen skjer i stigende rekkefølge basert på strenginnholdslengden.

Vi bruker lengden på strengen som sort_by -metoden forventer en numerisk verdi.

Anta at vi vil sortere strengen i omvendt rekkefølge ved hjelp av sort_by -metoden? I et slikt tilfelle kan vi legge til en minusoperatør i lengde, som vist nedenfor:

Databaser = ["Elasticsearch", "Memcached,", "MongoDB,", "MySQL,", "PostgreSql,", "Redis"]
Skriv ut databaser.sort_by | innhold | -innhold.lengde

Eksemplet ovenfor vil returnere den sorterte matrisen i synkende rekkefølge.

Lukking

Denne guiden har vist deg hvordan du jobber med matriser og sorterer dem ved hjelp av innebygde rubinmetoder.