Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.04.18;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
14-57875
Miwa
2002-03-12 13:56
2002.04.18
Предложение по работе форума


3-57625
Beer
2002-03-26 12:15
2002.04.18
TTreeView по БД.


1-57747
Дима2
2002-04-04 13:11
2002.04.18
Программа


3-57635
yuricom
2002-03-28 08:06
2002.04.18
Справочники, как определить свободна ли запись?


3-57623
XanderMan
2002-03-27 20:24
2002.04.18
Помогите с UDF





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский