Re[2]: Сортировка(значение, ID)
От: Veminz Украина  
Дата: 14.03.11 08:28
Оценка:
Здравствуйте, Glas, Вы писали:

G>Здравствуйте, Glas, Вы писали:


G>>Есть массив значений, каждое значение имеет свой ID. Нужно отсортировать этот массив так, чтобы одинаковые значения были отсортированы по ID. Сейчас я сортирую 2 раза, сперва массив, потом ID. Но по времени не укладываюсь в рамки


G>Мда, а причина то оказывается не в том, что сортировка в 2 прохода Тупо все циклы занимают 50% времени, 45% на перемещение данных и 5% на досортировку ID.


Из примера кода приведенного ранее:


    while (i <= j)
    {
        while (*matrix(i) < p && i <= last) ++i;
        while (*matrix(j) > p && j >= first) --j;
        if (i <= j)
        {
            temp = *matrix(i);
            idxTemp = idx[i - 1];
            *matrix(i) = *matrix(j);
            *matrix(j) = temp;
            idx[i - 1] = idx[j - 1];
            idx[j - 1] = idxTemp;
            ++i; --j;
        }
    }



Возможно внутри вызовов типа matrix(i) спрятаны еще циклы?
... Если в первый момент идея не кажется абсурдной, она безнадёжна. © Альберт Эйнштейн
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.