perl高水线算法
案例;有5個數3 5 10 4 6 求出一個最大值;
代碼如下:
| 1 2 3 4 5 6 7 8 9 10 11 12 | #!/usr/bin/perl $maximum=&max(3,5,10,4,6); sub max { ????????my ($max_so_far) = shift @_; ????????foreach (@_) { ????????if?($_ > $max_so_far) { ????????????????$max_so_far = $_; ????????} ????????} ????????$max_so_far; } print?"$maximum\n"; |
執行后
| 1 2 | [root@centos lansgg]# ./d.pl 10 |
上面的程序代碼使用了一般稱為“高水線(high-watermark)”的算法;大水過后,在最后一浪消退時,高水線會標示出所見過的最高水位。本例中,$max_so_far記錄了高水線,所以最后$max_so_far變量中的值就是我們要找的最大值。
本文轉自 西索oO 51CTO博客,原文鏈接:http://blog.51cto.com/lansgg/1279184
總結
- 上一篇: statCVS的问题剖析
- 下一篇: 关于理解Perl的fork函数的一个范例