Учитывая файл, который содержит:
2011-03-01
2011-04-01
2011-01-01
2011-05-01
2011-02-01
Я хотел бы получить:
2011-01-01
, которая является самой маленькой строкой в файле, если мы сравниваем строки на основе их лексикографическогоorder.
Один из способов достижения этого - сначала отсортировать строки, а затем вернуть первую строку:
sort file | head -n 1
Однако это имеет сложность O ( n ).log n ) из-за sort
, в то время как минимальная операция должна быть выполнима в простом O ( n ), где n - количество строк.
Кто-нибудь знает о более разумном и / или более эффективном способе выполнения этого?