Портировать алгоритм сравнений строк с PHP на C/C++?

Про алгоритм

Описание и примеры алгоритма можно найти здесь, а его реализацию на GitHub (Gist)



Проблема

Столкнулся с тем, что алгоритм сам по себе медленный (в сравнении со встроенной в PHP функцией similar_text() в десятки раз медленнее), но имхо, качественный.


Причина, по которой не подошла готовая similar_text() её качество (опытный путь). Появилась мысль преобразовать её в собранную программу в надежде на увеличение скорости работы.

Неудачные мои варианты решений

— Хотел применить HipHop PHP, но не осилил установку на 32-битной машине.

— Пробовал написать самому, но осознал, что знаний не достаточно.

Итог

Надеюсь, что кому-то пригодится вариант этого алгоритма на PHP, и буду очень благодарен тем, кто заинтересуется и поможет преобразовать его в C/C++.
  • Вопрос задан
  • 3121 просмотр
Решения вопроса 1
zizop
@zizop
Если вам необходим более быстрый алгоритм поиска подстрок (ну и как следствие — сравнение строк), вы можете попробовать PHP расширение, написанное на C — Fast String Search. В неё используется алгоритм Комменца-Вальтера по аналогии с автоматом Ахо-Корасик, является модификацией алгоритма БМ для множества паттернов.

Может быть такой вариант вам подойдёт. Если же нет — пишите в личку, у меня где-то было исчерпывающее руководство по созданию Hello World расширения для PHP на C, с созданием своей функции, в которую можно впихнуть ваш алгоритм.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы