はろー。こんにちは。
今更ながらソートアルゴリズムを改めて復習しているので、バブルソートを Perl でしてみたいと思います。
バブルソートとは
ソートのアルゴリズムの一つ。隣り合う要素の大小を比較しながら整列させること。最悪計算時間がO(n2)と遅いが、アルゴリズムが単純で実装が容易なため、また並列処理との親和性が高いことから、しばしば用いられる。安定な内部ソート。基本交換法、隣接交換法ともいう。(単に交換法と言う場合もある)
Wikipedia : https://ja.wikipedia.org/wiki/%E3%83%90%E3%83%96%E3%83%AB%E3%82%BD%E3%83%BC%E3%83%88
上記のように Wikipedia では解説されているのでわからない人は読んでください。
実際のコード
#!/usr/bin/perl use warnings; use strict; use Data::Dumper; my $array = [13, 5, 41, 20, 1]; for (my $i = 0; $i < scalar @$array - 1; $i++) { for (my $n = 1; $n < scalar @$array; $n++) { if (@$array[$n] < @$array[$n-1]) { my $tmp = @$array[$n-1]; @$array[$n-1] = @$array[$n]; @$array[$n] = $tmp; } } } warn Dumper $array; 1;
しんぷるにできました。