组合算法描述:
回溯:
用一个数组储存选取的每位数p[]
对于每位要选取的数,从1-n循环,然后检查该数是否被选取hp[i]= ? 1
if hp[i]=0&&该位数大于前面选取的全部数
p[index]=i;
hp[i]=1;
递归(index+1)
hp[i]=0;
else i++;
出口:当index==r+1时输出p[]
全排列算法描述:
回溯:
用一个数组存储每位要排列的数p[]
对于每位都有n种可排列的数i:1-n循环:
判断这个数是否在前面已被排列hp[i]=? 1
if hp[i]=0
p[index]=i;
hp[i]=1;
递归(index+1)
hp[i]=0;
else i++;
出口 :当index==n+1时已经全部排列输出 p[]