Re[2]: Как бы побыстрее отсортировать вектор?
От: ser_gunya  
Дата: 15.06.09 14:29
Оценка:
Здравствуйте, Sergey Chadov, Вы писали:

SC>Для однозначного ответа маловато информации, да и все равно нужно экспериментировать.

могу дать любую информацию
SC>Могу привести несколько вариантов:
SC>1. std::set вместо вектора
сет работает дольше, как и список и очередь (при аналогичном использовании).
я даже пробовал поддерживать вектор постоянно сортированным и добавлять в него новые данные методом бинарного поиска, но все равно медленнее
все таки сортировать один раз быстрее
SC>2. inplace_merge вместо std::sort
не пользовался inplace_merge. если я правильно понял, нужно иметь две отсортированые последовательности, т.е поддерживать эти последовательности отсортированными?
SC>3. tbb::parallel_sort вместо std::sort
Я так понимаю это интеловская библиотека!?
к сожалению есть ограничение — можно использовать только буст и стл
SC>4. своя реализация некоторой структуры данных вместо вектора(какая именно — зависит от характера данных)
тип данных я привел в примере, это std::vector< std::pair<int, int> >.
если ли смысл переписывать отператор меньше для std::pair<int, int>?
SC>5. свяо реализация сортировки, которая может заодно и unique сделать.
unique занимет немного времени, главная проблема это сортировка
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.