您的位置:首页 > 其它

递归实现全排列

2011-09-20 10:42 176 查看
//输入待排数组,cur=0,end为数组长度

void perm(int a[], int cur, int end)

{

int i = cur;

if (cur == end)

{

for (int j = 0; j < end; j++)

{

cout << a[j] << " ";

}

cout << endl;

}

while(i < end)

{

swap(a[i],a[cur]);//把a[i]拿出来放在前面,排列剩下的

perm(a, cur + 1, end);

swap(a[i], a[cur]);//排列好这次后记得把数组还原接着取出下一个放在前面

i++;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: