Sortowanie stringow

0

Przykladowo mam w tabeli kilka stringow np imion, czy jest jakis prosty sposob zeby je posortowac wg liter alfabetu ?

Pzdr

0

Bardzo prosty sposób :
Wstaw je do ListBoxa i ustaw Sort na True :-P

Nieco trudniejszy :
Przejdź sobie do http://4programmers.net/algo/ i tam poszukaj, oprócz tego wpisz w wyszukiwarce na forum "sortowanie", na pewno coś znajdziesz.

0

Bardzo prosty sposób :
Wstaw je do ListBoxa i ustaw Sort na True :-P

Hahaha a jak będziesz chciał wbić gwoździk, to niczym Grigorij Saakaszwili użyj do tego czołgu. ;-)

Może tak użyć TStringList zamiast ListBoxa...

0

Dzieki za podpowiedz, na pewno sobie poradze :)
Pozdrawiam

0

wystarczy zrobić tablice 2D, w jednej kolumnie imiona a w drugiej po kolei alfabet oa A do Z, jeżeli imione xaczynają się na tą samą litere przechodzimy na nasępną wszystko w podwujnej pętli jedna do sortowania drugo wprzypadku gdy są tre same zanki

0

type
StringArray = array of string;

var
arr : StringArray;

procedure Sort(l, r: integer; ArrayToSort : StringArray);
var
i, j : integer;
x, y : string;
begin
i := l; j := r; x := ArrayToSort[(l+r) div 2];
repeat
while ArrayToSort[i] < x do i := i + 1;
while x < arr[j] do j := j - 1;
if i <= j then
begin
y := ArrayToSort[i];
ArrayToSort[i] := ArrayToSort[j];
ArrayToSort[j] := y;
i := i + 1;
j := j - 1;
end;
until i > j;
if l < j then Sort(l, j, ArrayToSort);
if i < r then Sort(i, r, ArrayToSort);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
n : byte;
s : string;
begin
while true do begin
InputQuery(,,s);
if s = '' then break;
SetLength(arr,length(arr)+1);
arr[high(arr)] := s;
end;
Sort(low(arr),high(arr),arr);
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1