Procedure TForm1.Quicksort(var NumberArray:TNumberList; first:integer; last:integer);var PivotValue,right,temp:integer; left2:integer;begin first:=1; last:=max; If First<Last then begin PivotValue:=NumberArray[first]; Left2:=First+1; Right:=Last; While Left2<=Right do begin While (NumberArray[left2]<PivotValue) and (Left2<=Right) do begin Left2:=Left2+1; end; While (NumberArray[Right]>PivotValue) and (left2<=right) do begin right:=right-1; end; if left2<right then begin Temp:=NumberArray[right]; NumberArray[right]:=NumberArray[left2]; NumberArray[Left2]:=temp; end; end; PivotValue:=Right; Temp:=NumberArray[first]; NumberArray[first]:=NumberArray[PivotValue]; NumberArray[PivotValue]:=temp; QuickSort(NumberArray,First,PivotValue-1); Quicksort(NumberArray,PivotValue+1,Last); end; ArrayToStringGrid;end;
it is a big bug for this