首页 > 编程语言 >字符串的全排列算法讲解

字符串的全排列算法讲解

时间:2022-12-09 16:04:37浏览次数:38  
标签:pStr pCh char pBegin 算法 123 str 讲解 字符串


一、字符串的排列
用C++写一个函数, 如 Foo(const char *str), 打印出 str 的全排列,
如 abc 的全排列: abc, acb, bca, dac, cab, cba

一、全排列的递归实现

为方便起见,用123来示例下。123的全排列有123、132、213、231、312、321这六种。首先考虑213和321这二个数是如何得出的。显然这二个都是123中的1与后面两数交换得到的。然后可以将123的第二个数和每三个数交换得到132。同理可以根据213和321来得231和312。因此可以知道——全排列就是从第一个数字起每个数分别与它后面的数字交换。找到这个规律后,递归的代码就很容易写出来了:

#include<iostream>  
using namespace std;
#include<assert.h>

void Permutation(char* pStr, char* pBegin)
{
assert(pStr && pBegin);

if(*pBegin == '\0')
printf("%s\n",pStr);
else
{
for(char* pCh = pBegin; *pCh != '\0'; pCh++)
{
swap(*pBegin,*pCh);
Permutation(pStr, pBegin+1);
swap(*pBegin,*pCh);
}
}
}

int main(void)
{
char str[] = "abc";
Permutation(str,str);
return 0;
}

运行结果如下:

字符串的全排列算法讲解_bc


标签:pStr,pCh,char,pBegin,算法,123,str,讲解,字符串
From: https://blog.51cto.com/u_15907770/5926133

相关文章

  • 冒泡排序算法详解C++程序
    (1)冒泡排序算法:(BubbleSort)首先肯定是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到......
  • 打包matlab代码算法/工程成exe文件方法
    近期自己写的算法需要给其他人员用,但是不能分享源代码,尝试对算法工程打包成exe文件,记录一下打包步骤打包步骤:命令窗口输入指令deploytool,在弹出窗口选择ApplicationComp......
  • 贪心算法_买卖股票的最佳时机含手续费
    '给定一个整数数组prices,其中第i个元素代表了第i天的股票价格;非负整数fee代表了交易股票的手续费用。'你可以无限次地完成交易,但是你每笔交易都需要付手续费。如......
  • 根据字符串计算md5
    MD5用途1、对比两个字符串的变化,例如记录表单数据的改变来决定是否进行更新数据2、对比字节流是否相同(对比文件、图片、文档等等等)importorg.apache.com......
  • OC之【NSString字符串的其他用法】
    #import<Foundation/Foundation.h>字符串的大小写处理voidNSString*str=@"GuangDong";//转成大写NSLog(@"大写:%@",[struppercaseString]);//转成小......
  • 回溯算法_全排列_元素重复_字典去重法
    '示例1:'输入:nums=[1,1,2]'输出:[[1,1,2],[1,2,1],[2,1,1]]'示例2:'输入:nums=[1,2,3]'输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]Pub......
  • 【KNN分类】基于模拟退火优化KNN、蝗虫算法优化KNN实现数据分类附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • m基于ACO蚁群优化的FCM模糊聚类算法matlab仿真
    1.算法概述蚁群算法是通过对自然界中真实蚂蚁的集体行为的观察,模拟而得到一种仿生优化算法,它具有很好的并行性,分布性.根据蚂蚁群体不同的集体行为特征,蚁群算法可分为受......
  • m基于ACO蚁群优化的FCM模糊聚类算法matlab仿真
    1.算法概述       蚁群算法是通过对自然界中真实蚂蚁的集体行为的观察,模拟而得到一种仿生优化算法,它具有很好的并行性,分布性.根据蚂蚁群体不同的集体行为特征,......
  • 算法图解 电子书 pdf
    一句话简介:算法入门书,小薄册子,比较有意思。关注公众号:后厂村搬砖工。发送:电子书即可,对应文件夹:数据结构+算法+刷题   ......