Здравствуйте.
Мне удалось значительно оптимизировать свою процедуру нахождения расстояния Левенштейна.
Я добился двукратного увеличения производительности.
Далее прикладываю код оптимизированной процедуры. Пользуйтесь на здоровье.
data: 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. do. do. inp = t2. inp = t1. else. read table otab into inp index t2. else. inp = t2 + 1. inp = t1 + 1. else. 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. else. inp = x2 + 1. else. inp = x1 + 1. else. inp = x2 + 1. t2 = 0. exit. t2 = t2 + 1. refresh otab. otab[] = ntab[]. refresh ntab. exit. t1 = t1 + 1. res = inp.
Комментарии