Thema: FreePascal Bubblesort Problem

Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#6

AW: Bubblesort Problem

  Alt 6. Mär 2018, 22:04
greife das Thema mal auf da es bei mir auch um Bubblesort geht.

Delphi-Quellcode:
procedure BubbleSort(var zorder: array of Integer; var faceorder: array of Integer);
var
  IntI, IntK: Integer;
begin

  for IntI := Low(zorder) to (High(zorder) - 1) do
  begin
    for IntK := (IntI + 1) to High(zorder) do
    begin
       if zorder[IntI] < zorder[IntK] then
       begin
         BubbleSwap(zorder[IntI], zorder[IntK]);
         BubbleSwap(faceorder[IntI], faceorder[IntK]);
       end;
    end;
  end;
end;
BubbleSort(zorder, faceorder);

Mein Problem ist folgendes

Im Array zorder können sich auch negative werte befinden.
Wenn sie negativ sind würden sich diese werte ändern.

bsp.
zorder[IntI] := -18;
zorder[IntK] := -90;

in dem fall würde sich das Array ändern
weil -18 mehr wie -90 ist.

Das führt aber beim zeichnen zu Problemen da die ZOrder des Objects dann verändert wird.
Denn -90 ist ja eigentlich wenn ich zeichne mehr wie -18. (es liegt tiefer im Raum)

Wie kann ich das beheben? Oder ist meine Denkweise falsch.
Wenn also die Zorder wie im Bild -6 mehr wie -78 ist dann habe ich ein großes Problem.

gruss

Geändert von EWeiss (11. Jul 2019 um 16:49 Uhr)
  Mit Zitat antworten Zitat