给定一个包含以下内容的文件:
2011-03-01
2011-04-01
2011-01-01
2011-05-01
2011-02-01
我想得到:
2011-01-01
如果我们根据字典顺序比较行,这是文件中最小的行。
实现此目的的一种方法是先对行进行排序,然后返回第一行:
sort file | head -n 1
然而,这具有 O( n log n ) 的复杂性,因为sort
min 操作应该只在 O( n ) 中可行,其中n是行数。
任何人都知道执行此操作的更智能和/或更有效的方法吗?