Строить коды для алфавита из двух символов немного странно - и так понятно, что получатся 0 и 1, и все эти кодирования бессмысленны.
Код Шеннона - Фано: делим знаки на две части, чтобы суммарные вероятности появления символов частей были максимально близки (тут в каждой части всего один символ - иначе никак). Одной приписываем 0, другой 1. На этом всё кончилось.
Код Хаффмана: выбираем два символа с наименьшими вероятностями, у одного постфикс 0, у другого 1. Объединяем в одну вершину, и она осталась одна. Конец.
В среднем 1 символ - 1 бит.
Энтропия -∑ p ㏒₂ p = -0.33 log 0.33 - 0.67 log 0.67 = 0.915 бит на символ.
Учитывая, что энтропия всегда не превосходит среднюю длину кода, тут сошлось.