Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

std::sort на делфи


Страницы:   1 2

анонимус ©   (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 в структуре.

А для этого надо обязательно переводить процедуру сортировки из Си на Дельфи?
Задача-то какая?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо