2009-09-29 5 views
0

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

Быстрое выполнение сортировки, похоже, ушло вскользь и требует длительных 15 секунд (приблизительно) для сортировки более 10 изображений. Сортировка слияния, похоже, работает нормально, но она просто не кажется такой быстрой (около 3 секунд).

Любые другие предложения также будут хороши.

P.S .: Я создаю средство просмотра изображений для мобильных устройств Windows, и моими основными критериями для приложения является скорость, поэтому мне нужен алгоритм сортировки для сортировки изображений через их уровни контрастности. (Это просто эксперимент).

Любые другие входы также будут полезны.

+2

Сколько фотографий это изделие? Для разумного числа вы не должны брать 15 секунд для любого из этих алгоритмов. Возможно ли, что вы повторно вычисляете уровень контрастности для каждого изображения каждый раз, когда вам нужно значение? Для quicksort или mergesort это будет много дополнительных перерасчетов. – jprete

+0

Похоже, вы копируете много данных во время сортировки - как насчет сортировки пары , а затем перемещения изображений после завершения алгоритма сортировки? – fbrereto

+0

Я смущен, если у вас уже есть хешированные значения для изображений, вы должны иметь возможность сортировать 10 значений вручную менее чем за 15 секунд. Вы генерируете хэш-значение при каждом обращении к изображениям? –

ответ

2

Как насчет использования отсортированного списка, который помещает изображение в нужное положение во время вставки? У вас все еще будет стоимость поиска точки вставки, но она может быть более удобной для пользователя, например. если пользователь вручную выбирает из списка изображений, то немного более длительное время вставки может быть в порядке.

+0

hmmm ...... Вставка сортировки кажется приятной альтернативой, я не думал о ручном подходе на данный момент, но это для дальнейшего. Thanks –

1

Обратите внимание, что для быстрой сортировки требуется доступ к произвольным элементам массива в постоянное время O (1) для быстрой работы. Связанный список принимает O (n) ...

+0

Не объясняет, почему алгоритмы настолько медленны с таким маленьким n, но все же очень хорошая точка. –

+0

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

+0

только что понял, что даже связанный с двойным списком список будет принимать O (n), спасибо за это –