Количество действий array_unique PHP - PullRequest
3 голосов
/ 29 ноября 2011

Кто-нибудь знает Big O из array_unique()?

Я не прошел через источник, но я мог бы представить, что он просматривает каждое значение и проверяет, есть ли оно в массивечто было бы O(n^2) это правильно?

Спасибо

1 Ответ

3 голосов
/ 29 ноября 2011

Это O(nlogn), поскольку вместо сканирования O(n^2) используется сортировка.

Обратите внимание, что ключи сохранены. array_unique () сначала сортирует значения, которые обрабатываются как строковые, затем сохраняет первый встреченный ключ для каждого значения и игнорирует все последующие ключи. Это не означает, что ключ первого связанного значения из несортированного массива будет сохранен.

Цитируется из http://php.net/manual/en/function.array-unique.php

РЕДАКТИРОВАТЬ: Не забудьте Google, проверить руководство, проверить существующие вопросы, а затем задать его.

...