O (N) Идентификация перестановок

Этот ответ определяет, являются ли две строки перестановками, сравнивая их содержимое. Если они содержат одинаковое количество каждого символа, они, очевидно, являются перестановками. Это достигнуто вНА) время.

Мне не нравится ответ, потому что он заново изобретает то, чтоis_permutation предназначен для этого. Это сказало,is_permutation имеет сложность:

В большинствеНА2) приложения предиката, или точноN если последовательности уже равны, гдеN=std::distance(first1, last1)

Поэтому я не могу защищать использованиеis_permutation где он на несколько порядков медленнее, чем алгоритм ручного вращения. Но неужели разработчик стандарта не упустит столь очевидного улучшения? Так почему жеis_permutation НА2)?

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

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