Рекурсивное обращение строк

Хорошо, я написал 2 версии этой программы. Но я ищу лучшее решение - самое простое и быстрое.

Это мое решение, но мне сказали, что это решение на O (n * n) медленнее, что я не знаю, что на самом деле означает. Мне также сказали, что я могу закрепить его, разбив его на 2 функции. Может ли кто-нибудь помочь мне сделать это?

void reverse3(char s[])
{
     int l;
     int i;

     l = strlen(s);
     if(l > 1)
     {
          reverse3(s + 1);

          for(i = 1; i < l; i++)
          {
              int temp = s[i-1];
              s[i-1] = s[i];
              s[i] = temp;
          }
     }
}

Ответы на вопрос(6)

Ваш ответ на вопрос