将abc的全排列输出

#include "iostream"

using namespace std;

void swap(char a[],int i,int j){
    char temp;
    temp=a[i];
    a[i]=a[j];
    a[j]=temp;
}

void permutation(char a[],int n,int index){
    if(index==n){
        cout<<a<<endl;
        return;
    }

    for(int i=index;i<n;i++){
        if(i!=index){
            swap(a,index,i);
        }
        permutation(a,n,index+1);
        if(i!=index){
            swap(a,index,i);
        }
    }

}

void main(){

    char a[]="abc";
    permutation(a,3,0);

}
时间: 2024-11-05 11:24:09

将abc的全排列输出的相关文章

启动三个线程A,B,C,按ABC的顺序输出10次

package jun; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /**  * 启动三个线程A,B,C,

n全排列输出和 n个数的组合(数字范围a~b)

n全排列输出: int WPermutation(int num, bool bRepeat) num表示num全排列 bRepeat标志是否产生重复元素的序列. int Permutation(int n, int* A, int cur, bool bRepeat) { static int number = 0; if(cur == n) { number++; for(int i = 0; i< n; i++) { printf("%d ", A[i]); } print

习题和dowhile 使用switch语句,要求输入1,输出abc;输入2输出bc,输入3输出C。

#include<stdio.h> int main(void) { int a; scanf("%d",&a); switch(a) { case 1: printf("a"); case 2: printf("b"); case 3: printf("c\n"); } return 0; } dowhile 一般形式为 do 语句 while(表达式): 先执行语句再进行判断,如果表达式为真,则继续循环

不会全排列算法(Javascript实现),我教你呀!

今天我很郁闷,在实验室凑合睡了一晚,准备白天大干一场,结果一整天就只做出了一道算法题.看来还是经验不足呀,同志仍需努力呀. 算法题目要求是这样的: Return the number of total permutations of the provided string that don't have repeated consecutive letters. Assume that all characters in the provided string are each unique.F

全排列算法的JS实现

问题描述:给定一个字符串,输出该字符串所有排列的可能.如输入“abc”,输出“abc,acb,bca,bac,cab,cba”. 虽然原理很简单,然而我还是折腾了好一会才实现这个算法……这里主要记录的是解决问题中的思路. 我实现的是最普通的递归算法,也没有除重,嗯非递归及除重的算法以后再补上吧. 好了正文开始: 首先明确函数的输入和输出,输入是一个字符串,输出么对于JS而言用数组来表示最恰当了,所以函数的雏形应该是这样的: function permutate(str) { var result

题目1120:全排列

题目描述: 给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列.我们假设对于小写字母有'a' < 'b' < ... < 'y' < 'z',而且给定的字符串中的字母已经按照从小到大的顺序排列. 输入: 输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间. 输出: 输出这个字符串的所有排列方式,每行一个排列.要求字母序比较小的排列在前面.字母序如下定义:已知S = s1s2...sk , T = t1t2...tk,则S < T 等价

递归--练习7--noi1750全排列

递归--练习7--noi1750全排列 一.心得 二.题目 1750:全排列 总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列. 我们假设对于小写字母有'a' < 'b' < ... < 'y' < 'z',而且给定的字符串中的字母已经按照从小到大的顺序排列. 输入 输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间. 输出 输出这个字符串的所有排列方式,每行一个排列.要求

算法笔记_025:字符串的全排列(Java)

目录 1 问题描述 2 解决方案 2.1 递归实现 2.2 字典序排列实现   1 问题描述 输入一个字符串,打印出该字符串的所有排列.例如,输入字符串"abc",则输出有字符'a','b','c'所能排列出来的所有字符串"abc","acb","bac","bca","cab","cba". 2 解决方案 2.1 递归实现 从字符串中选出一个字符作为排列的第一个字符

28. 字符串的全排列之第2篇[string permutation with repeating chars]

[本文链接] http://www.cnblogs.com/hellogiser/p/string-permutation-with-repeating-chars.html [题目] 输入一个字符串,打印出该字符串中字符的所有排列.例如输入字符串abc,则输出由字符a.b.c所能排列出来的所有字符串abc.acb.bac.bca.cab和cba.例如输入字符串aba,则输出由字符a.b所能排列出来的所有字符串aab.aba.baa. [分析] 之前的博文28.字符串的排列之第1篇[String