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>