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

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

Универсальный метод для сортировки масивов.


Q123 ©   (2008-09-01 12:07:00) 

В программе используются массивы из разных типов элементов, а именно
TFloatVector = array of double;
TIntVector = array of integer;

Чтобы их сортировать пришлось писать два идентичных метода, которые отличаются только типом передаваемого им параметра и типом результата.

можно ли как-то обойтись одним методом, который сможет сортировать как TFloatVector так и TIntVector?
Спасибо.


Сергей М.   (2008-09-01 12:51:00) [1]

А какой алгоритм сортировки используется ?
И почему именно массив, а не список ?


palva   (2008-09-01 12:43:00) [2]

Можно обратиться к стандартной процедуре сортировки qsort, которая находится в C:\WINDOWS\system32\msvcrt.dll


www   (2008-09-01 12:37:00) [3]


> ну сравнение элементов я сделал через тип variant

это долго очень
преобразование и сравнение типов в этом случае займет половину времени сортировки


_RusLAN   (2008-09-01 12:34:00) [4]


> Один универсальный метод, перебирающий элементы   с параметром
> функцией, которая сравнивает элементы.



ну сравнение элементов я сделал через тип variant, то необходимость в параметре-функции отпала. (если я правильно понял для чего нужна эта функция).


> Передавай массив не по значению, а по ссылке.

Объясните, пожалуйста, подробней. Вы имеете ввиду передавать просто указатель (а точнее, как мне описать параметр для массива)?


> А вторым параметром специфицируй тип элементов массива.


Это тоже не очень понял :). Имеется ввиду передавать  какой-то признак integer или double,  а в процедуре сортировки проверять его?


Сергей М.   (2008-09-01 12:10:00) [5]

Можно.
Передавай массив не по значению, а по ссылке.
А вторым параметром специфицируй тип элементов массива.


Медвежонок Пятачок   (2008-09-01 12:09:00) [6]

Один универсальный метод, перебирающий элементы  с параметром функцией, которая сравнивает элементы.


Наверх

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