Изменения

Перейти к: навигация, поиск
Псевдокод алгоритма
curRight = curRight + p
'''return''' segments
 
==== Перестройка подотрезков ====
'''map<char''', Segment'''> resizeSegments'''(alphabet : '''char['''m''']''', weight : '''map<char''', '''int>''', segments : '''map<char''', Segment'''>''')
<font color=green>// новая левая граница подотрезка</font>
'''double''' l = 0
<font color=green>// сумма весов символов алфавита</font>
'''int''' sum = 0
<font color=green>// подсчет суммы весов символов алфавита</font>
'''for''' i = 0 '''to''' m - 1
sum = sum + weight[i]
</font>// перестроение подотрезков, для символов алфавита</font>
'''for''' i = 0 '''to''' m - 1
'''char''' c = alphabet[i]
segments[c].left = l
segments[c].right = l + (weight[c] / sum)
l = segments[c].right;
'''return''' segments
== См. также ==
55
правок

Навигация