Главная страница
    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.007 c
3-57592
Morgan
2002-03-26 15:52
2002.04.18
Индексация Парадокс 7.0


1-57714
MaXie
2002-04-08 12:59
2002.04.18
Множество, как нелокальная переменная!


4-57922
Ogu
2002-02-12 20:33
2002.04.18
Размер папки


14-57867
DimaIv
2002-03-11 10:41
2002.04.18
Я знаю что имеется два основных вида средств реализации


1-57811
Sergn
2002-04-06 19:34
2002.04.18
Фоновый рисунок в компоненте TCustomMemo.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский