Avatar billede r.hegaard Nybegynder
20. august 2004 - 10:16 Der er 8 kommentarer og
1 løsning

Sortere array

Findes der en funktion i Delphi, som kan sortere et array, ligesom sort() kan i php ??
Avatar billede martinlind Nybegynder
20. august 2004 - 11:06 #1
Der er et eks. med en QSort function du kan sakse
Avatar billede r.hegaard Nybegynder
20. august 2004 - 11:10 #2
Hvor er der ??
Avatar billede stefmeister Nybegynder
20. august 2004 - 15:33 #3
sortere? Hvordan vil du sortere dem? Altså at den mindste værdi kommer i den første variable oder was?
Avatar billede martinlind Nybegynder
20. august 2004 - 15:48 #4
I demos\Threads\ ligger der tre sort rutiner en QuickSort, BubbleSort og SelectionSort,  Søg og du skal finde.......

/Martin
Avatar billede r.hegaard Nybegynder
20. august 2004 - 16:21 #5
Jeg vil gerne have tabellen sorteret alfabetisk.
Det skal være en 2D-tabel (tabel[][]), som skal sorteres, sådan så der først sorteres efter første kolonne, derefter efter anden o.s.v.
Avatar billede martinlind Nybegynder
20. august 2004 - 20:06 #6
Ja ?, bogstaver kan du sortere med >< tegn i delphi
Avatar billede r.hegaard Nybegynder
20. august 2004 - 21:06 #7
martinlind> Ja, det ved jeg, men der skal jo meget kode til, hvis jeg skal lave en sorteringsfunktion med det. Jeg er på udkig efter en simpel funktion, som kan sortere et array.
Avatar billede nico26 Nybegynder
21. august 2004 - 18:54 #8
du kan bare stjæle sort metoden fra TList, og tilpasse den til dit behov

procedure Sort(var Tabel : array of string);

  procedure QuickSort(L, R: Integer);
  var
    I, J, P: Integer;
    T: string;
  begin
    repeat
      I := L;
      J := R;
      P := (L + R) shr 1;
      repeat
        while CompareText(Tabel[I], Tabel[P]) < 0 do Inc(I);
        while CompareText(Tabel[J], Tabel[P]) > 0 do Dec(J);
        if I <= J then
        begin
          T := Tabel[I];
          Tabel[I] := Tabel[J];
          Tabel[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(0, Length(Tabel));
end;
Avatar billede martinlind Nybegynder
22. august 2004 - 09:19 #9
r.hegaard >> koden kunne du finde i demos\Threads som jeg skrev i mit første svar, så er det jo bare at kopiere og tilpasse som nico også har skrevet. "tingende laver jo ikke sig selv vel"
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester