Przykladowo mam w tabeli kilka stringow np imion, czy jest jakis prosty sposob zeby je posortowac wg liter alfabetu ?
Pzdr
Przykladowo mam w tabeli kilka stringow np imion, czy jest jakis prosty sposob zeby je posortowac wg liter alfabetu ?
Pzdr
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.
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...
Dzieki za podpowiedz, na pewno sobie poradze :)
Pozdrawiam
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
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;