代码片断
1 全排列历遍(递归法)
使用方法
排列组合的递归实现Combination(0,5,outputdata);// alldata[0]需要初始化成全排列所包括的元素,alldata[1]到alldata[5]是递归时的临时数据,无需处理。
代码
排列组合的递归实现int alldata[6][6];
排列组合的递归实现
int outputdata[6];
排列组合的递归实现
void Combination(int level,int datalen,int *output)
}

2 组合历遍(递归法)
C++版本
使用
排列组合的递归实现//inputdata需要初始化为组合所包括的元素,调用时需要指明所有元素个数(对于函数来说是可选的元素个数),单个组合包含的元素个数(对于函数来说是单次排列缺少的元素个数)
排列组合的递归实现Permutation(inputdata,
6,outputdata,3);排列组合的递归实现
代码
排列组合的递归实现void Permutation(int *data, int datalen, int * output, int num)
}
dephi版本
使用
排列组合的递归实现var
排列组合的递归实现  inputdata :
array of Real;
排列组合的递归实现  outputdata : 
array of Real;
排列组合的递归实现  i : integer;
排列组合的递归实现
begin
排列组合的递归实现  SetLength(inputdata,
5);
排列组合的递归实现  SetLength(outputdata,
3);
排列组合的递归实现  
for i := 0 to 5 do
排列组合的递归实现    inputdata[i] :
= i;
排列组合的递归实现  Permutation(inputdata,
0,outputdata,0);
排列组合的递归实现
end;
代码
排列组合的递归实现procedure Permutation(var inputdata: array of Real;inputpos:integer;var outputdata:array of Real;outputpos:integer);
排列组合的递归实现
var
排列组合的递归实现  I: Integer;
排列组合的递归实现
begin
排列组合的递归实现  
for I := 0 to 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;

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-02
  • 2021-08-22
  • 2022-12-23
  • 2022-02-10
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-18
  • 2022-01-01
相关资源
相似解决方案