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

来源:互联网 发布:泛函是什么 知乎 编辑:程序博客网 时间:2024/06/18 11:45

【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱: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;}


0 0
原创粉丝点击