Изменения

Перейти к: навигация, поиск

Обратное преобразование Барроуза-Уиллера

24 байта добавлено, 01:34, 6 декабря 2011
Псевдокод
Пусть N — количество символов во входной строке, M — количество символов в алфавите, k — номер исходной строки в матрице перестановок, s — входящая строка, count — массив для сортировки подсчетом, t — вектор обратного преобразования.
//считаем Cчитаем частоты символов for i = 0..M count[i] = 0 for i = 0..N count[s[i]]++ //упорядочиваем Упорядочиваем символы, чтобы получить первый столбец исходной матрицы //count[i] указывает на первую позицию символа i в первом столбце
sum = 0
for i = 0..M
sum = sum + count[i]
count[i] = sum - count[i]
//создаем Cоздаем вектор обратного преобразования for i = 0..N
t[count[s[i]]]] = i
count[s[i]]++
//И восстанавливаем исходный текст
j = t[x]
for i = 0..N
Анонимный участник

Навигация