Но согласно рекуррентному соотношению
T (n) = 2T (n / 2) + O (m * n)
Будет T (n) = 2T ( n / 2) + O (n ^ 2), когда m = n
Тогда результатом будет O (n ^ 2), а не O (n ^ 2logn).
Исправить если я ошибаюсь.
Вы можете использовать команды cut
, sort
и uniq
следующим образом:
cat input_file | cut -f 1 | sort | uniq
получает уникальные значения в поле 1, замена 1 на 2 даст уникальные значения в поле 2.
избегая UUOC :)
cut -f 1 input_file | sort | uniq
EDIT:
Для подсчета количества уникальных случаев можно использовать команду wc
в цепочке:
cut -f 1 input_file | sort | uniq | wc -l
# COLUMN is integer column number
# INPUT_FILE is input file name
cut -f ${COLUMN} < ${INPUT_FILE} | sort -u | wc -l
Предполагая, что файл данных фактически разделен табуляцией, а не выровнен по пробелу:
<test.tsv awk '{print $4}' | sort | uniq
Где $ 4 будет:
Для этого вы можете использовать awk, sort и uniq, например, чтобы перечислить все уникальные значения в первом столбце
awk < test.txt '{print $1}' | sort | uniq
Как указано в другом месте, если вы хотите подсчитать количество экземпляров чего-то вы можете передать уникальный список в wc -l