我有一个包含一长串整数的文件:

10
4
66
....

我想使用UNIX命令行工具找到最大值。我知道我可以使用sort(确实有使用sort在SO上解决此问题的方法),但这效率低下,需要O(N * log(N))和足够的内存。通过一个简单的for循环,我应该能够找到O(N)中的最大值和几个字节的内存。

似乎必须要有一些程序(名称类似于max)才能做到这一点---是吗?

最佳答案

如果不需要负数,则可以使用此方法:

awk '$0>x{x=$0};END{print x}' input.txt

使用它来支持负数:
awk 'BEGIN{x=-2147483648};$0>x{x=$0};END{print x}' input.txt

初始化x可使解决方案正确处理值

关于Shell脚本: find maximum value in a sequence of integers without sorting,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11931676/

10-11 16:50