Blasensortierung durchführen und mit Ruby sortieren auswählen

Zweck

Schreiben wir den Code und fassen den Sortieralgorithmus zusammen. Ich werde die Sprache in Ruby ausprobieren.

Über das Sortieren

Durch Sortieren werden die als Eingabe angegebenen Zahlen in aufsteigender Reihenfolge sortiert.

Blasensorte

Die Blasensortierung wiederholt den Vorgang des "Vergleichens und Austauschs zweier benachbarter Zahlen von rechts nach links in einer Folge von Zahlen". Wenn der Vorgang für eine Zahlenfolge einmal ausgeführt wird, befindet sich die kleinste Zahl im ersten Teil des Arrays. Es kann sortiert werden, indem die Anzahl der Elemente umgangen wird.

bubble.rb


def bubble_sort(array)
  length = array.length
  (length - 1).times do |round|
    (length - 1 - round).times do |n|
      if array[length - n - 1] < array[length - n - 2]
        smaller = array[length - n - 1]
        array[length - n - 1] = array[length - n - 2]
        array[length - n - 2] = smaller
      end
    end
  end
  array
end

array = [2, 3, 13, 7, 8, 9, 11, 1, 5]
bubble_sort(array) #=> [1, 2, 3, 5, 7, 8, 9, 11, 13]

Inhalt der Blasensortierfunktion

Selektive Sortierung

Die Auswahlsortierung wiederholt den Vorgang "Suchen nach dem Mindestwert in der Zahlenspalte und Ersetzen durch die Zahl ganz links".

selection.rb


def selection_sort(array)
  length = array.length
  (length - 1).times do |round|
    min = round + 1
    round.upto(length - 1) do |n|
      if array[n] < array[min]
        min = n
      end
    end
    min_number = array[min]
    array[min] = array[round]
    array[round] = min_number
  end
  array
end

Holen Sie sich die minimale Indexnummer, suchen Sie danach und ersetzen Sie sie. Wie bei der Blasensortierung beträgt die Anzahl der Größenvergleiche (Länge) ^ 2/2.

Nachtrag

Als nächstes fasse ich die Einfügesortierung, die Heap-Sortierung, die Zusammenführungssortierung, die schnelle Sortierung und die Bucket-Sortierung zusammen.

Recommended Posts

Blasensortierung durchführen und mit Ruby sortieren auswählen
Implementieren Sie den Algorithmus in Ruby: Tag 2 - Blasensortierung -
Schreiben Sie Schlüssel und Werte in Ruby
Segfo Ruby in 2 Zeilen
Zusammenfassung der Hashes und Symbole in Ruby
[Ruby] Schleifenunterscheidung und Verwendung in Ruby
Unterschied zwischen "|| =" und "instance_variable_defined?" Im Ruby-Memo
Java Bubble Sort
[Verständnis] Unterschied zwischen Hash und Array in Ruby
Fügen Sie CSV-Dateien mit "'" und "" "in Ruby 2.3 in MySQL ein
Java Select Sort
Schwer in Rubin! ??
Rubin und Edelstein
Unterschiede zwischen Klassen und Instanzen in Ruby
Tatsächlich unterscheidet Ruby zwischen Zeilenumbrüchen und Leerzeichen
[Ruby] Schwierigkeiten beim Refactoring logischer Operatoren (Genauigkeit und Lesbarkeit)
Umgang mit TSV-Dateien und CSV-Dateien in Ruby
Holen Sie sich Standortinformationen mit Rails und sortieren Sie in aufsteigender Reihenfolge
Umgang mit Datum und Uhrzeit in Ruby. Verwenden Sie Datum und Uhrzeit richtig.
Machen Sie einen Blackjack mit Java
[Ruby] Klassen und Instanzen
Symbole und zerstörerischer Rubin
[Ruby] Big Decimal und DECIMAL
Ruby-Klassen und -Instanzen
Ruby-Vererbung und -Delegierung
Ausgabedreieck in Ruby
Arten von Variablen in Ruby
Schneller Popcount in Ruby
[Java] Machen Sie die Variablen der erweiterten for-Anweisung und für jede Anweisung unveränderlich
Lösen mit Ruby, Perl und Java AtCoder ABC 113 C Referenz
Secret Note 104 von Mathematical Girl, implementiert in Ruby und C.
Erstellen Sie mit Java Ihren eigenen einfachen Server und verstehen Sie HTTP
AtCoder dwango Programmierwettbewerb B zum Lösen in Ruby, Perl und Java B.
Sortieren in aufsteigender Reihenfolge in Java (Blasensortierung: Einfacher Austauschmethodenalgorithmus)
Behandlung von Zeilenanfang und Zeilenende in regulären Ausdrücken in Ruby