Здравствуйте.
Мне удалось значительно оптимизировать свою процедуру нахождения расстояния Левенштейна.
Я добился двукратного увеличения производительности.
Далее прикладываю код оптимизированной процедуры. Пользуйтесь на здоровье.
form dist
using s1
type csequence s2
type csequence CHANGING res
TYPE i
. ntab TYPE table OF i,
otab TYPE table of i,
ls1 type i, ls2 type i,
t1 type i, t2 type i,
tt2 type i,
x1 type i, x2 type i,
x type i,
inp type i.
ls1 = strlen( s1 ) - 1.
ls2 = strlen( s2 ) - 1.
inp = t2.
inp = t1.
read table otab into inp index t2.
inp = t2 + 1.
inp = t1 + 1.
tt2 = t2 + 1.
read table ntab into x index t2.
read table otab into x1 index t2.
read table otab into x2 index tt2.
inp = x + 1.
inp = x2 + 1.
inp = x1 + 1.
inp = x2 + 1.
t2 = 0.
t2 = t2 + 1.
otab[] = ntab[].
t1 = t1 + 1.
res = inp.