配列内の最小値を取得する – Perl

  • このエントリーをはてなブックマークに追加
  • LINEで送る
この記事は 2007年5月26日 に書かれたものです

とあるリスト(配列)から最小値を取得するにはどうすれば良いだろうか? いろいろな方法が考えられるが、ここでは三種類ほどサンプルをしめす。各関数の処理をそれぞれ見ていただきたい。

- Sponsored Link -

サンプル

;#
;#最小値を抽出する
;#

use strict;
use List::Util qw(min);

#-----------------------------#
#         初期値の設定        #
#-----------------------------#
my @array = (3,4,6,8,1,2,5,7);    #1が最小値

#-----------------------------#
#       最大値の取り出し      #
#-----------------------------#
print min1( @array ), "\n";
print min2( @array ), "\n";
print min3( @array ), "\n";




#------------------------------------------------
#■最小値を抽出する (その1)
#------------------------------------------------
sub min1 {
    my $min = shift;    #最初の値を入れる

    #-- 渡された配列をすべてなめる --#
    foreach(@_){
        $min = $_ if( $min > $_ );    #現在よりも小さい値なら
                                      #入れ替える
    }

    return( $min );
}


#------------------------------------------------
#■最小値を抽出する (その2)
#------------------------------------------------
sub min2 {
    #-- 昇順にソートし、一番最初の値を取り出す --#
    return(
        (sort {$a <=> $b} @_)[0]
    );
}


#------------------------------------------------
#■最小値を抽出する (その3)
#------------------------------------------------
sub min3 {
    #-- モジュールを利用(Perl5.8以降) --#
    return(
        List::Util::min(@_)
    );
}

コメント

ご感想やご質問などお気軽にどうぞ。書き込むにはfacebookへのログインが必要です。

このブログを応援する

お寄せいただいたお気持ちは全額サーバ代や次の記事を執筆するための原資として活用させていただいております。この記事が参考になった場合などぜひご検討ください。

PayPal(ペイパル)
PayPalで300円支払う
※金額は任意で変更できます。
※100円でも泣いて喜びますw
※住所の入力欄が現れた場合は「no needed」を選択ください
これまでのご協力者さま
- Sponsored Link -