Авторизация:
ПРОЕКТЫ ДАННОЙ КАТЕГОРИИ


Все проекты данной категории  -  33


TOP 10 ФРИЛАНСЕРОВ

Разработка прикладного ПО

1softfacade
(55.5)
2tvv
(50.0)
3Virtson
(38.4)
4VyatkaSoft
(36.0)
5dmitriy_sv
(30.2)
6Svetozor
(30.0)
7msotools
(25.2)
8AeroSpace
(23.5)
9ossadchy
(20.0)
10Asmur
(17.4)

Заменить функцию qsort на более быструю

Разработка прикладного ПО
Заказчик:
Фотография / Юзерпик
ОффлайнTopChan (TopChan)
(4.0)
В сервисе: 2 года 11 месяцев  |  Отзывы: 15
Бюджет: 5 USD
Приём предложений: 30.11.2007 - 01.12.2007
Статистика: Предложения: 7  |  Просмотры: 113 (93 пользователя)
Статус: Закрыт
Нужно заменить функцию qsort на более быструю (не меньше чем в 10 раз). Язык С.
Есть массив из M (например, 1000) элементов, нужно найти n (например, 400) элементов с наибольшими значениями.
Важна сортировка только тех элементов, которые попадают в нужные.

Сейчас используется, но работает медленно:
int znach_cmp(const void *a, const void *b)
{
const double *ia = (const double *)a;
const double *ib = (const double *)b;
return (*ia < *ib) - (*ia > *ib);
}
double* tmpNodes = new double [nNum];

qsort(tmpNodes, nNum, sizeof(double), znach_cmp);

Предложения фрилансеровRSS-трансляция

Статус:  активные  |  отклоненные
Пользователь / Рейтинг Сумма Сроки Дата публикации
Фотография / Юзерпик
ОффлайнКозлов Андрей (AndreyK)
(0.2)
В сервисе: 1 год 7 месяцев  |  Отзывы: 2
? - 30.11.2007 в 21:51
По задаче понятно, что нужна сортировка по алгоритму выборки.
Но выборка на массивах работает очень медленно.
Для ускорения процесса есть смысл данные представить в виде списка.
Фотография / Юзерпик
ОффлайнВова (Talaat)

В сервисе: 1 год 1 месяц  |  Отзывы: 2
? - 30.11.2007 в 23:16
Привет.
Могу сделать функцию по самому быстрому алгоритму.
За отзыв.
Фотография / Юзерпик
ОффлайнОстапенко Денис Александрович (SharpC)

В сервисе: 2 года  |  Отзывы: 1
? - 01.12.2007 в 05:22
Могу предложить сортировку бинарной кучей
Фотография / Юзерпик
ОффлайнМаткивский Юрий Марьянович (CedricDor)
(0.8)
В сервисе: 1 год 4 месяца
? - 01.12.2007 в 08:28
Могу предложить совет, который ускорит вашу функцию в 17 раз (независимо от M и n).
Фотография / Юзерпик
ОффлайнДобрый Юрий (Megabios)
(14.3)
В сервисе: 1 год 5 месяцев  |  Отзывы: 24
? - 01.12.2007 в 10:44
Если в массиве 1000 элементов, то самая простая сортировка справляется в пределах секунды.
Если сортировка кучей, то ~ 10 миллисекунд.
Вобщем, стучите, помогу. Есть БОЛЬШОЙ опыт работы именно с алгоритмами и алгоритмами сортировки непосредственно.

ICQ: ***
Хороший стиль, расширяемость кода, все работы тестируются
Портфолио: http://weblancer.net/users/megabios/portfolio/
Фотография / Юзерпик
ОффлайнРыков Юрий (root-master)
(1.2)
В сервисе: 1 год  |  Отзывы: 2
7 USD - 01.12.2007 в 14:51
Для увеличения производительности перебора значений и увеличения скорости упорядочивания, необходимо исходные значения представить в ином виде.
Сделаю буквально за 30 минут.
Нужен тестовый пример.

TEMPORA MUTANTUR, ET NOS MUTAMUR IN ILLIS