1. ホーム
  2. スクリプト・コラム
  3. パール

ハイウォーターラインアルゴリズムのPerl実装(多値比較問題法の解法)

2022-01-03 22:28:48

High water line"アルゴリズム。大水の後、最後の波が収まるときに、高水位線はこれまでで最も高い水位を示す。
ここでは、Perlで"high water line"のアルゴリズムを使用する方法を紹介します。

#! /usr/bin/perl; 
use utf8; 
 
sub max { 
  my($max_so_far) = shift @_; # The first value in the array, treat it as the maximum for now. 
  foreach(@_){ # iterate through the array @_ 
  if($_>$max_so_far){ # See if other elements have values larger than $max_so_far. 
  $max_so_far = $_;} #Update the max_so_far variable if there is 
  } 
  $max_so_far; 
} 
 
my $_MaxData = &max(2,3,8,5,10); 
print $_MaxData; 

最初の行は、配列@_をシフトし、要素2を変数max_so_farに入れ、@_の残りの要素を(3,8,5,10)とし、foreachループで配列を繰り返し、新しい配列の最初の要素3は2より大きく、変数$max_so_farに移動するなどし、最後の10が配列中の最大要素になっています。最後の10、は、配列の最大の要素です。