Какой алгоритм сжатия данных использовать при архивации лог файлов?
=====================================================================

 Стоит задача написать архиватор лог файлов  

Алгоритмов сжатия данных немало и у каждого своя спецификация.   

Как определить какой алгоритм сжатия данных нужно использовать для архивации файла, в котором много повторяющихся элементов? 

 Из "традиционных" Линуксовых лучше всего сжимает BZIP2.   

Ещё лучше будет сжимать LZMA (7-Zip), в нём выставляете максимально большой размер словаря, на который у вас хватит памяти, word size ставите на максимум.  
  

Также протестируйте PPMd, выставив те же настройки вверх, этот алгоритм тоже есть в 7-Zip. Я давно им не пользовался и ничего не читал, но раньше он был хорош для текстов и логов.  
  

У 4-го WinRAR'а был preset именно для текстов и логов, проверьте и его (не знаю сохранился ли он в 5-й версии).  
  

Ну и почитайте MaximumCompression, там наверняка найдётся алгоритм, который легко зарулит всех выше, но будет работать полдня. 

 "Стоит задача написать архиватор лог файлов"  
  

"Алгоритмов сжатия данных немало и у каждого своя спецификация.  

Как определить какой алгоритм сжатия данных нужно использовать для архивации файла, в котором много повторяющихся элементов?"  
  

У вас в задаче я не вижу требований, написать идеальный архиватор лог файлов.  

Вдобавок написать хотя бы простейший архиватор - уже нетривиальная задача для новичка, а судя по вопросу - вы новичок.  
  

Что я могу подсказать, так это свою догадку, что хотел ваш препод, но для этого нужно понять принципы алгоритмов сжатия по словарю - когда вы анализируете файл, находите в нем что-то похожее, составляете словарь похожих частей и сжимаете используя этот словарь.  

Так вот - в случае сжатия нескольких файлов, можно использовать словарь первого файла для сжатия второго и так далее.  

В архиваторах это называется solid архив.  

Его преимущество - меньший размер.  

Недостаток - при распаковке одного конкретного файла (например последнего), вам придется распаковать все предыдущие. 

 Типично используется алгоритм сжатия GZip.  

bzip2 сжимает лучше, но он работает медленнее. А лучше всего будет сжимать xz (LZMA).  

Если Linux, то есть программа logrotate и тогда ничего не надо выдумывать. Она и сжимает в gzip и занимается ротацией логов. 

 Если это реальная задача - то бессмысленно что-то писать самому. Берете готовые, проверяете их на реально имеющихся лог-файлах, сравниваете,делаете выводы, лучший запускаете в продакшн.  

Если это учебная задача - просто научиться реализовывать архиваторы - то изучаете существующие алгоритмы и реализуете любой из них. Все равно, ваша учебная реализация будет хуже, чем имеющиеся коммерческие. Поэтому сравнивать их никто в здравом уме не будет.