Для всех намерений и целей векторы - это массивы с добавленными тонкостями.Произвольный доступ так же быстр, как массив в стиле C.Удаление / вставка элементов в середине вектора выполняется медленно, но то же самое относится и к массивам в стиле C.Сортировка оболочки должна быть такой же быстрой по векторам, как и по массивам.Для меня это звучит так, будто вы делаете что-то неортодоксальное.
Быстрая сортировка или интросорт (std::sort
один) должны быть самыми быстрыми сортировками на основе сравнения, доступными для вас.Mergesort немного медленнее, чем quicksort, но у него нет чувствительности quicksort к патологическим случаям.В среднем все они занимают O (n lg n) времени (с квадратичным наихудшим случаем для быстрой сортировки).
РЕДАКТИРОВАННОЕ ОБНОВЛЕНИЕ
Код: C-array и Vector на основе оболочек.С оптимизацией или без, сортировка 1 миллиона элементов занимает в два раза больше времени для векторов по неизвестной мне причине.Похоже, STL выполняет лот проверки ошибок при доступе к вектору.