您的位置:首页 > 理论基础 > 数据结构算法

数据结构——算法之(036)(输出字符串的所有排列)

2014-06-30 17:13 323 查看
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping@163.com】

题目:

输出字符串的所有排列,如 abc 的全排列: abc, acb, bca, dac, cab, cba

题目分析:

1、先遍历字符串,然后顺序交换字符串的两个字符,然后再次递归后,把刚才那两个字符交换回来

算法实现:

#include <iostream>
using namespace std;

void str_permutation(char* str, char* start)
{

if(*start == '\0')
std::cout<<str<<std::endl;

char *temp = start;
while(*temp != '\0')
{
swap(*start, *temp);
str_permutation(str, start+1);
swap(*start, *temp);
temp++;
}
}

int main(void)
{
char str[] = "123";
str_permutation(str,str);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐