У меня есть массив из 1000-2000 элементов, которые являются указателями на объекты. Я хочу сохранить мой массив отсортированным и, очевидно, хочу сделать это как можно быстрее. Они сортируются по элементу и не выделяются непрерывно, поэтому допускается пропуск кэша при каждом доступе к элементу сортировки.
В настоящее время я сортирую по требованию, а не по добавлению, но из-за отсутствия кэша и [предположительно] отсутствия встраивания доступа к элементу внутренний цикл моей быстрой сортировки идет медленно.
Сейчас я делаю тесты и пробую что-то сделать (и посмотреть, что же такое узкое место), но кто-нибудь может порекомендовать хорошую альтернативу ускорению этого процесса?
Должен ли я выполнять сортировку вставкой вместо быстрой сортировки по требованию или мне следует попытаться изменить свою модель, чтобы сделать элементы более подходящими и уменьшить потери в кеше?
ИЛИ, есть алгоритм сортировки, который я не нашел, который хорош для данных, которые собираются кешировать?
Редактировать: Может быть, я неправильно сформулировал это :), мне на самом деле не нужно, чтобы мой массив сортировался все время (я не перебираю их последовательно ни для чего) Мне просто нужно отсортировать его, когда я делаю бинарную отбивку найти подходящий объект, и выполнение этой быстрой сортировки в это время (когда я хочу выполнить поиск) в настоящее время является моим узким местом из-за пропусков и скачков кэша (я использую оператор <на своем объекте, но я надеюсь, что inlines в релизе) </p>