跳转至 content

算法/寻找最大值/perl 方法 2

来自 Wikibooks,开放世界的开放书籍

perl 源代码

sub findmax_apple(){
        return 0 if $#_ == -1;
        return $_[0] if $#_ == 0;

        if ( $#_ == 1 ) {
                return $_[0] if $_[0] > $_[1];
                return $_[1];
        }

        my @aryA;
        my @aryB;

        foreach my $i ( 1 .. ($#_+1)/2 ){
                push ( @aryA, $_[ $i - 1 ] );
        }

        foreach my $i ( $#aryA + 1 .. $#_ ){
                push ( @aryB, $_[$i] );
        }

        my $intM = &findmax_apple(@aryA);
        my $intN = &findmax_apple(@aryB);
        return $intM if $intM > $intN;
        return $intN;
}

子例程使用示例

print &findmax_apple(qw/ 1 100 182 32 476 /);

输出结果应为:476。

华夏公益教科书