Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.18;
Скачать: CL | DM;

Вниз

Как отсортировать массив?   Найти похожие ветки 

 
kjj   (2002-04-08 10:09) [0]

Как отсортировать по алфавиту массив (array[1..100] of string) с заданными значениями его элементов? Впринципе можно скинуть его в бд и отсортировать её, но эта операция в программе часто повторяется и затормозит программу. Может можно сделать как-то побыстрее(скорость работы проги) работая с самим массивом?


 
Alx2 ©   (2002-04-08 11:03) [1]


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;


 
MBo ©   (2002-04-08 13:34) [2]

а TStringList не устроит?


 
Андрей Сенченко ©   (2002-04-08 14:38) [3]

Вот сюда загляни :
http://alglib.chat.ru/


 
Dok_3D ©   (2002-04-08 15:25) [4]

Методом пузырька


 
Alx2 ©   (2002-04-08 15:31) [5]

>Методом пузырька
Вопрос был в том: можно сделать как-то побыстрее(скорость работы проги)
Хотя, если еще пузырька два взять, то скорость уже по барабану будет.


 
AFROLOV   (2002-04-08 15:33) [6]

Пузырек - полный отстой по скорости. Если чистый Pascal то QuickSort а если не хочется программировать то TStringList.


 
Андрей Сенченко ©   (2002-04-08 15:37) [7]

>> AFROLOV (08.04.02 15:33)
>> Пузырек - полный отстой по скорости.

Зато всего две строки кода :)


 
Anatoly Podgoretsky ©   (2002-04-08 15:46) [8]

При таких объемах и говорить про скорость.


 
Alx2 ©   (2002-04-08 15:51) [9]

>Anatoly Podgoretsky
"эта операция в программе часто повторяется"



Страницы: 1 вся ветка

Текущий архив: 2002.04.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
14-57869
dima_
2002-03-11 13:35
2002.04.18
Подскажите как перенести текст из Тmemo в memo ячейку таблицы...


1-57720
ymin
2002-04-08 10:17
2002.04.18
Кстати как новичок купил вчера книгу Фаронова DELPHI 6.


3-57640
Boozmakov
2002-03-24 19:13
2002.04.18
Real-time формирование ConnectionString для ADOConnection


1-57793
новенький в Делфи
2002-04-06 00:25
2002.04.18
как прогу к часикам затолкать?


1-57696
UDS
2002-04-07 20:44
2002.04.18
Как управлять размером объектов?