Tablica sortuje Ruby

Tablica sortuje Ruby
Ruby to uproszczony i potężny język programowania, który zapewnia wyjątkowe funkcje codziennych operacji programowania.

Ponieważ tablice są fundamentalnym obiektem w Ruby i innych językach programowania, Ruby zapewnia sposób sortowania elementów bez pisania doskonałego niestandardowego algorytmu.

Ten przewodnik nauczy Cię, jak sortować tablicę za pomocą wbudowanych metod i funkcjonalności Ruby.

Jak posortować tablicę

Ruby zapewnia różne sposoby sortowania tablicy. Metody sortowania i sort_by w Ruby są jednymi z najbardziej fundamentalnych dla sortowania tablicy.

#1: Za pomocą metody sortowania

Metoda sortowania jest zdefiniowana w module wymyślonym i zwraca wartości sortowanej tablicy.

Na przykład:

Nums = [1,20, 23, 28, 2, 100, 34, 53, 22, 21, 11]
Drukuj Nums.sortować
[1, 2, 11, 20, 21, 22, 23, 28, 34, 53, 100]

Domyślnie metoda zwróci elementy w tablicy posortowanej w kolejności rosnącej.

Działa przy użyciu operatora statku kosmicznego, który zwraca 1, jeśli wartość jest większa niż, 0 dla równych i -1 dla mniej niż.

Jeśli podasz szereg strun, posortowana tablica będzie w kolejności alfabetycznej jako:

bazy danych = %W MySQL, PostgreSQL, Redis, Memcached, MongoDB, ElasticSearch
Drukuj bazy danych.sortować
[„ElasticSearch”, „Memcached”, „MongoDB”, „MySQL”, „Postgresql”, „Redis,”]

Możesz przekazać blok do funkcji sortowania, jeśli chcesz zaimplementować niestandardową kolejność sortowania. Na przykład następujące wdraża kolejność odwrotną za pomocą metody sortowania.

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

Ruby pozwala również posortować tablicę na miejscu za pomocą sortowania! metoda. Metoda wpłynie na oryginalną metodę na nową sortowaną tablicę jako:

NUMS = [1, 2, 11, 20, 21, 22, 23, 28, 34, 53, 100]
Nums.sortować!
Drukuj Nums
[1, 2, 11, 20, 21, 22, 23, 28, 34, 53, 100]

UWAGA: Użyj tego rodzaju! metoda ostrożna; zastępuje oryginalną tablicę, jak pokazano w powyższym przykładzie.

#2: Metoda sort_by

Metoda sort_by zapewnia elastyczność podczas sortowania w porównaniu z metodą sortowania. Spójrzmy na kilka przykładów, aby zobaczyć, jak działa sortowanie za pomocą metody sort_by.

Pierwszym przykładem jest sortowanie według długości łańcucha.

bazy danych = [„elasticsearch”, „memcached”, „MongoDB”, „MySQL”, „Postgresql,”, „Redis”]
Drukuj bazy danych.sort_by | treść | treść.długość
[„Redis”, „MySQL”, „MongoDB”, „Memcached”, „Postgresql”, „ElasticSearch”]

Sortowanie elementów w tablicy odbywa się w kolejności rosnącej w oparciu o długość zawartości ciągu.

Używamy właściwości długości ciągu, ponieważ metoda sort_by oczekuje wartości numerycznej.

Załóżmy, że chcemy sortować ciąg w odwrotnej kolejności za pomocą metody sort_by? W takim przypadku możemy dodać długość minus operator, jak pokazano poniżej:

bazy danych = [„elasticsearch”, „memcached”, „MongoDB”, „MySQL”, „Postgresql,”, „Redis”]
Drukuj bazy danych.sort_by | treść | -treść.długość

Powyższy przykład zwróci posortowaną tablicę w kolejności malejącej.

Zamknięcie

Ten przewodnik pokazał, jak pracować z tablicami i sortować je za pomocą wbudowanych metod rubinowych.