void Permutation(int*data, int datalen, int* output, int num) }
dephi版本
使用
var inputdata :arrayof Real; outputdata : arrayof Real; i : integer; begin SetLength(inputdata,5); SetLength(outputdata,3); for i :=0to5do inputdata[i] := i; Permutation(inputdata,0,outputdata,0); end;
代码
procedure Permutation(var inputdata: arrayof Real;inputpos:integer;var outputdata:arrayof Real;outputpos:integer); var I: Integer; begin for I :=0to High(inputdata) - inputpos - High(outputdata) + outputpos do begin outputdata[outputpos] := inputdata[inputpos+i]; if(outputpos < High(outputdata) )then Permutation(inputdata,inputpos+1+I,outputdata,outputpos+1) else cb(outputdata);//处理函数 end; end;