Алгоритм Рабина-Карпа для проверки плагиата с помощью rolling hash

Я использую алгоритм Рабина-Карпа для проверки плагиата для любых двух файлов исходного кода поэтому сначала я просто реализую его алгоритм на c # здесь его код, но его среднее и лучшее время работы O(n+m) в пространстве O(p), но его худшее время O(nm).

 public void plagiarism(string [] file1, string [] file2)
    {
        int percent = 0;

        for (int i = 0; i <(file1.Length - file2.Length +1); i++)
        {

            for (int j = 0; j < file1.Length; j++)
            {
                if (file1[i + j - 1] != file2[j])
                {


                }

                    percent++;
                Console.WriteLine(percent);
            }


            Console.WriteLine("not copied");
        }

    }

так как бы сделать его более эффективным, используя катящуюся хэш-функцию, потому что это лучше, чем это...

6
задан templatetypedef 24 December 2012 в 22:40
поделиться