![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как отсортировать массив? [D5]
kjj © (2002-04-08 10:09:00)Как отсортировать по алфавиту массив (array[1..100] of string) с заданными значениями его элементов? Впринципе можно скинуть его в бд и отсортировать её, но эта операция в программе часто повторяется и затормозит программу. Может можно сделать как-то побыстрее(скорость работы проги) работая с самим массивом?
Alx2 (2002-04-08 15:51:00) [1]>Anatoly Podgoretsky
"эта операция в программе часто повторяется"
Anatoly Podgoretsky (2002-04-08 15:46:00) [2]При таких объемах и говорить про скорость.
Андрей Сенченко (2002-04-08 15:37:00) [3]>> AFROLOV (08.04.02 15:33)
>> Пузырек - полный отстой по скорости.
Зато всего две строки кода :)
AFROLOV (2002-04-08 15:33:00) [4]Пузырек - полный отстой по скорости. Если чистый Pascal то QuickSort а если не хочется программировать то TStringList.
Alx2 (2002-04-08 15:31:00) [5]>Методом пузырька
Вопрос был в том: можно сделать как-то побыстрее(скорость работы проги)
Хотя, если еще пузырька два взять, то скорость уже по барабану будет.
Dok_3D (2002-04-08 15:25:00) [6]Методом пузырька
Андрей Сенченко (2002-04-08 14:38:00) [7]Вот сюда загляни :
http://alglib.chat.ru/
MBo (2002-04-08 13:34:00) [8]а TStringList не устроит?
Alx2 (2002-04-08 11:03:00) [9]
procedure SortStringArray(Var SortList: Array of String);
procedure QuickSort(L, R: Integer);
var
I, J: Integer;
P, T: String;
begin
repeat
I := L;
J := R;
P := SortList[(L + R) shr 1];
repeat
while SortList[I]<P do
Inc(I);
while SortList[J]>P do
Dec(J);
if I <= J then
begin
T := SortList[I];
SortList[I] := SortList[J];
SortList[J] := T;
Inc(I);
Dec(J);
end;
until I > J;
if L < J then
QuickSort(L, J);
L := I;
until I >= R;
end;
begin
QuickSort(Low(SortList),High(SortList));
end;
Пример использования:
Var MyArr : array [1..10] of String; // Размеры MyArr могуть быть любыми :)
begin
// Заполняем чем-то MyArr
SortStringArray(MyArr); // Сортируем по возрастанию
// Пользуемся отсортированным.
end;