В-итоге,<tex>sum</tex>-число бит необходимое для кодирования этого текста
Сложность алгоритма <tex>O(n^2)</tex>.
Псевдокод алгоритма:
sort(<math>\mathrm{a}</math>) ''//сортируем массив по возрастанию''
do
for <math>\mathrm{a[2]i}</math> = 1..<math>\mathrm{n}</math> find(<math>\mathrm{min1}</math>,<math>\mathrm{min2}</math>) ''//отыскиваем индексы двух минимальных элементов массива swap(<math>\mathrm{a}</math>[1],<math>\mathrm{a}</math> + [min1]) swap(<math>\mathrm{a}</math>[2],<math>\mathrm{a}</math>[min2]) ''//теперь первые два элемента массива минимальные'' <math>\mathrm{suma}</math> [2] =<math>\mathrm{a}</math>[1] + <math>\mathrm{a}</math>[2] <math>\mathrm{sum}</math>=+ <math>\mathrm{a}</math>[2] <math>\mathrm{n}</math>-- delete(<math>\mathrm{a[1]}</math>[1]) ''//убираем из массива ненужный элемент и больше его не рассматриваем''
while <math>\mathrm{n}</math> != 1 ''//пока не останется одна частота в массиве''
'''return''' <math>\mathrm{sum}</math>