![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
std::sort на делфи
анонимус © (2011-08-16 00:07:00)Есть на c++ такой код:
std::sort(edges, edges + num_edges);
где num_edges - размер массива
edges - массив структур:
typedef struct {
float w;
int a, b;
} edge;
почему к массиву прибавляется integer невкурил, но еджес объявляются такedge *edges
А вопрос - как это грамотно реализовать на делфи? Насколько я понял задача состоит в том, чтобы отсортировать массив по параметру w в структуре. Массивы огромны, надеюсь есть иные способы кроме как в цикле? ну вот как с++ есть же )
sniknik (2011-08-16 09:56:00) [21]> потому что дольше
не скажи, тут "бабушка надвое", мы уже с кем то спорили тут и сравнивали... (автор быстрой сортировки стринглиста, действительно быстрой... быстрее чем на стандартных компонентах) так если нужно 1 раз то да, быстрее, а если несколько (структура же) со сменой полей и возвратами, то второй раз занимает времени 0, т.к. просто применяется индекс. а сортировка в любом случае занимает примерно одинаковое время.
sniknik (2011-08-16 09:50:00) [22]> зависит от задачи
:)
он считает задача раскрыта (см. up). отсортировать массив.
кстати для массивов (если буквально) встречал где то в недрах VCL процедуру QuickSort но она вроде не "выведена" для прямого использования... видимо чтобы не плодить тормозов от решения таких "задач" напрямую.
Германн (2011-08-16 09:50:00) [23]
> анонимус (16.08.11 01:35) [4]
>
> эм, в с++ это делается не в цикле а той процедурой
Значит цикл сидит внутри той процедуры.
Игорь Шевченко (2011-08-16 09:49:00) [24]
> почему не DataSet.Sort?
потому что дольше
Вариант (2011-08-16 09:42:00) [25]
> sniknik © (16.08.11 09:23) [7]
Ближайшая ассоциация просто. Вполне и датасет может пойти, зависит от задачи
sniknik (2011-08-16 09:23:00) [26]> Смотри TList.Sort
почему не DataSet.Sort? ведь -> "Массивы огромны", напрашивается БД и все связанное... для начала хотя бы "безбазовый" датасет под обработку данных.
Вариант (2011-08-16 06:52:00) [27]
> анонимус (16.08.11 00:07)
Смотри TList.Sort
анонимус (2011-08-16 01:36:00) [28]т.е. не только время написания, но время исполнения ))
анонимус (2011-08-16 01:35:00) [29]эм, в с++ это делается не в цикле а той процедурой, сдается мне что наличие встроенной процедуры экономит время. В делфи я нашел только циклами колбасить, вот спрашиваю нет ли чего подобного в делфи. Я в нем не силен )
Германн (2011-08-16 01:32:00) [30]
> задача внизу описана, как можно скоростнее отсортировать
> массив структур по значению w в структуре.
А это определятся только опытным путём. Какой алгоритм сортировки следует использовать в данном случае. И этот вопрос не имеет отношения к языкам программирования.
анонимус (2011-08-16 01:14:00) [31]задача внизу описана, как можно скоростнее отсортировать массив структур по значению w в структуре.
Германн (2011-08-16 00:54:00) [32]
> А вопрос - как это грамотно реализовать на делфи? Насколько
> я понял задача состоит в том, чтобы отсортировать массив
> по параметру w в структуре.
А для этого надо обязательно переводить процедуру сортировки из Си на Дельфи?
Задача-то какая?