![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Универсальный метод для сортировки масивов.
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]Один универсальный метод, перебирающий элементы с параметром функцией, которая сравнивает элементы.