У меня есть скрипт perl, который проходит через пару файлов с достоинством и генерирует отчет.Perl: Самый эффективный способ вычисления процентиля
Для того, чтобы вычислить процентиль я делаю следующее
my @values = 0;
while (my $line = <INPUTFILE>){
.....
push(@values, $line);
}
# Sort
@values = sort {$a <=> $b} @values;
# Print 95% percentile
print $values[sprintf("%.0f",(0.95*($#values)))];
Это, очевидно, сохраняет все значения авансовых в массиве, а затем вычисляет процентиль, который может быть тяжелым на памяти (предполагая, что миллионы значений), есть ли более эффективный способ памяти сделать это?
Внутренний 'while' может быть более понятным как' $ i ++, а $ window [$ i] <$ _ и $ i <$ # window' (эквивалентен?). – amon
@amon: Возможно, может быть, с ошибкой 1. TITS - Попробуйте это посмотреть :-) – choroba
Я разрешил редактирование в «chomp @ window» и упрощенном цикле. Изменение порядка испытаний привело к резкому уменьшению предупреждений. – amon