Witam

Mam jeden problem. Jak posortować dwie tablice:

iArray:array[0..9] of integer = (3,3,5,1,0,9,8,4,6,3);
c:array[0..9] of integer = (0,9,2,3,4,5,6,7,8,1);

tak aby pierwsza była posortowana rosnąco, przy czym druga tez miałaby być posortowana rosnąco tylko z zachowaniem indeksów z tablicy pierwszej.

Tak powinno wygladac prawidłowe sortowanie:
0,1,3,3,3,4,5,6,8,9
4,3,0,1,9,7,2,8,6,5

A tak mi wychodzi teraz:
0,1,3,3,3,4,5,6,8,9
4,3,0,9,1,7,2,8,6,5

A to co zrobiłem

procedure QuickSort(iLow, iHigh : Integer);
  var
    iLo, iHi : Integer;
    x, Temp,Temp1 : Integer;
  begin
    iLo := iLow;
    iHi := iHigh;
    X := iArray[(iLow + iHigh) div 2];
    repeat
      while iArray[iLo] < X do Inc(iLo);
      while iArray[iHi] > X do Dec(iHi);
      if (iLo <= iHi) then
      begin
        Temp := iArray[iLo];
        Temp1:= c[iLo];

        iArray[iLo] := iArray[iHi];

        c[iLo]:=c[iHi];
        iArray[iHi] := Temp;

        c[iHi]:=Temp1;
         Inc(iLo);
        Dec(iHi);
      end;

    until iLo > iHi;

    if (iHi > iLow) then QuickSort(iLow, iHi);
    if (iLo < iHigh) then QuickSort(iLo, iHigh);
end;

Zdrówka

Kochzg</b>