Изменения
→Построение кода Хаффмана
==Построение кода Хаффмана==
<math>\mathrm{n}</math> = |<math>\mathrm{|C|}</math>|
<math>\mathrm{Q}</math> = <math>\mathrm{C}</math>
'''for''' <math>\mathrm{i}</math> = 1 '''to''' <math>\mathrm{n}</math> - 1
<math>\mathrm{x}</math> = Extract_Min(<math>\mathrm{Q}</math>) //Extract_Min - изъятие из множества наименьшего элемента
left[<math>\mathrm{z}</math>] = <math>\mathrm{x}</math>
<math>\mathrm{y}</math> = Extract_Min(<math>\mathrm{Q}</math>)
right[<math>\mathrm{z}</math>] = <math>\mathrm{y}</math>
<math>\mathrm{f}</math>[<math>\mathrm{z]}</math> ] = <math>\mathrm{f}</math>[<math>\mathrm{x]}</math> ] + <math>\mathrm{f}</math>[<math>\mathrm{y]}</math>] INSERTInsert(<math>\mathrm{Q}</math>, <math>\mathrm{z}</math>)
'''return''' Extract_Min(<math>\mathrm{Q}</math>) //Возврат корня дерева
Алгоритм работает за <tex> {O(n\log{n}}) </tex> для алфавита из <math>\mathrm{n}</math> символов.