回答
List::Util的min
和max
都很好,
use List::Util qw(min max);
my $min = min @numbers;
my $max = max @numbers;
但List::MoreUtils的minmax
是更有效的,當你需要在兩者最小值和最大值(因爲它確實比較少)。
use List::MoreUtils qw(minmax);
my ($min, $max) = minmax @numbers;
List :: Util是核心的一部分,但List :: MoreUtils不是。
我認爲List::Util是你在找什麼。
您可以使用Statistics::Lite計算最小值,最大值等
您可以使用List::Util
要做到這一點很容易,例如。
use List::Util qw(min max);
my @arr = (33, 32, 8, 100);
print min(@arr)," ", max(@arr), "\n";
+1,因爲此答案由自解釋代碼支持。 :) – verisimilitude
使用List::Util
module,該建議得到與反正熟悉,就像List::MoreUtils
:
D:\ :: perl -MList::Util=max -lwe "print max 324, 43, 53, 3532, 43"
3532
D:\ :: perl -MList::Util=min -lwe "print min 324, 43, 53, 3532, 43"
43
List::Util具有「最大」和「最小」,你可以用它來直接找職能給出一個數字列表的最大值和最小值。檢查你是否可以使用它。您也可以對陣列進行排序,然後確定最高和最低編號
您應該使用List::Util
,它自從v5.7.3起隨Perl發行版一起發佈,因此可能不需要安裝。
use strict;
use warnings;
use feature 'say';
use List::Util qw/ max min /;
my @data = (33, 32, 8, 100);
say min @data;
say max @data;
輸出
8
100
所提供的解決方案是好的,但如果你想實現它自己這是非常簡單的:
use strict;
use warnings;
my @array = (33, 32, 8, 100);
my ($min, $max);
for (@array) {
$min = $_ if !$min || $_ < $min;
$max = $_ if !$max || $_ > $max
};
print "min: $min\n";
print "max: $max\n";
不含模塊:
#!/usr/bin/perl
use strict;
use warnings;
my @array = sort { $a <=> $b } qw(33 32 8 100);
print "min: $array[0]\n";
print "max: $array[-1]\n";
這花費了一些時間排序值,它們可能已經遇到的最小值和最大值之間,應該只花O(N)時間取O(N log N)時間。 – hepcat72
當然,如果你希望同時獲得列表的最大值和最小值,那麼一次獲取兩者的效率會更高;它只需要對每2項數據執行3次比較,而不是4次。如果數據集足夠大,這可能很重要。
List::Util
不提供minmax
功能,但List::MoreUtils
確實。
use strict;
use warnings;
use feature qw(say);
use List::MoreUtils qw(minmax);
my ($min, $max) = minmax @data;
say $min;
say $max;
其實我剛剛看到ikegami已經給了上面的'List :: MoreUtils'答案。對不起。 – LeoNerd
對於數字:
my ($min,$max) = (sort {$a <=> $b} @array)[0,-1];
對於字符串:
my ($min,$max) = (sort {$a cmp $b} @array)[0,-1];
您可以使用地圖要做到這一點,而無需庫:
my @array = (33, 32, 8, 100);
my ($max,$min)=(-1e99,1e99); # Initialize to values outside anything in your list
map {$max=$_ if ($_>$max); $min=$_ if($_<$min);} @array;
print "max=$max, min=$min\n";
- 1. 查找元組(數據庫)中的最小值和最大值
- 2. 查找五次數組中的最大值和最小值
- 3. 從bash數組中查找最大值和最小值
- 4. 在Java 2D數組中尋找最小值和最大值
- 5. 如何找到一個數組的最大值和最小值
- 6. Java - 查找字符串數組的最小值和最大值
- 7. 查找數組的最小值和最大值
- 8. 數組的最小值和最大值?
- 9. 數組的最大值和最小值
- 10. 從二維數組查找最小值和最大值
- 11. 從數組中找到最小值和最大值,php
- 12. Python中大NumPy數組的最小值,最大值和均值
- 13. 查找最大,最小和中間值
- 14. 在MIPS中查找10個元素數組的最大值和最小值
- 15. 如何查找列表框中的最大值和最小值
- 16. 查找最大值和最小值爲偶數和奇數
- 17. 查找關聯數組的最小和最大鍵和值php
- 18. 在Java中查找num值和最小值/最大值值
- 19. PHP - 在多維數組中查找最小/最大值
- 20. 在bigquery中查找多個值的最小值和最大值
- 21. 如何從數組中提取最大值和最小值?
- 22. 如何查找數組的最小值?
- 23. Python:我如何在子數組元素中找到最小值和最大值?
- 24. 在用戶輸入數組(Java)中查找最小值和最大值
- 25. 在php中查找所有局部最大值和最小值數組
- 26. 如何查找數組的最大值?
- 27. C查找最大值和最小值?
- 28. 查找最大值和最小值
- 29. 查找最小值和最大值
- 30. 查找最小值和最大值JAVA
這是功課?你有什麼嘗試? –
谷歌搜索有什麼用? – jm666
在這裏提出簡單的問題很好,因爲策劃的答案最終比你可以通過谷歌搜索找到的好。 –