2013-09-27 5 views
0

Возможно, я был немного неясен:Сортировка нескольких независимых векторов double

Что я хочу сделать, чтобы отсортировать множество векторов как можно быстрее. У меня есть, например, 200 векторов с 200 двойными.

+0

Вы хотите отсортировать элементы внутри каждого вектора или хотите отсортировать все векторы (что требуется для дополнительной категории в качестве векторов цифр, не имеют врожденного порядка)? –

ответ

0

Поскольку вы не разместили свой код, я предполагаю, что вы ищете лучшую оптимизацию кода для экономии памяти и времени. Попробуйте использовать флаги в своих циклах.

for(i=1;x;i++) 
{ 
    sort(); 
    if(flag) 
     break; 
} 

«обкатка» гарантирует, что вы не перебрать ненужный код после того, как вы отсортированы данные, флаг указует компилятор, чтобы выйти из оператора цикла, когда итерация comlete. Использование флагов в вложенных циклах еще более важно, поскольку сложность пространства проходит над O (n.square), и это повышает эффективность.

Это экономит много времени на огромном количестве итераций, а также на пространстве памяти. Попробуйте оптимизировать свой код везде, где это возможно, в долгосрочной перспективе имеет большое значение.

+0

У меня нет никакого флага. Я никогда не сломаюсь. Я хочу сортировать несколько векторов i параллельно быстро – Johan

+0

Попробуйте использовать сортировку radix, иначе, если вы используете один цикл, быстрого сортировки будет достаточно. – Legolas

0

Использование сортировки Radix может ускорить ваши виды.

Существует параллельная реализация алгоритма сортировки Radix в Nvidia cuda/openCL SDK.

+0

Возможно, я был немного неясен, я хочу сортировать много векторов. Не один большой. – Johan

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