2015-01-24 2 views
1

Я всегда поражен абстракциями, которые создают наши современные языки или каркасы, даже те, которые считаются относительно низкими, такими как Objective-C/Cocoa.Какой вид используется какао?

Здесь меня интересует тип сортировки, который выполняется при вызове sortedArrayUsingComparator: на NSArray. Является ли он динамичным, например, анализирует текущие ограничения среды (в частности, свободную память) и атрибуты массива (длина, уникальные значения) и выбирает наилучший вид соответственно или всегда использует один и тот же, например Quick или Merge Сортировать?

Должно быть возможно проверить это, проанализировав время работы метода относительно N, просто задавшись вопросом, действительно ли кто-то уже побеспокоился.

ответ

1

Это было описано на конференции разработчиков. Сортировка не нуждается в какой-либо памяти. Он проверяет, есть ли отсортированный диапазон чисел в начале или в конце или в обоих, и использует это. Вы можете спросить себя, как вы сортируете массив из 100 000 записей, если первые 50 000 будут отсортированы в порядке убывания.

Смежные вопросы