zoukankan      html  css  js  c++  java
  • 1103-全排列

    描述

    全排列的生成就是对于给定的字符集或数集,用有效的方法将所有可能的全排列无重复无遗漏地枚举出来。对给定的字符集中的字符规定一个先后关系,在此基础上规定两个全排列的先后是从左到右逐个比较对应的字符的先后,或根据给定的数集中的大小关系,规定两个全排列的先后是从左到右逐个比较对应的数的大小,即依照字典序给出全排列。例如字符集{1,2,3},较小的数字较先,这样按字典序生成的全排列是:

    1 2 3

    1 3 2

    2 1 3

    2 3 1

    3 1 2

    3 2 1

    给定n个整数,现请编程求它们所有的全排列。

    输入

    输入包括两个行,第一行给出正整数n( 0 < n <=8), 第二个是 n个整数(大小范围:[-10^4, 10^4])。

    输出

    按字典序输出这n个整数的全排列,每一行给出一个全排列。

    样例输入

    3

    1 23 88

    样例输出

    1 23 88

    1 88 23

    23 1 88

    23 88 1

    88 1 23

    88 23 1

    #include <iostream>
    #include <algorithm>
    #define N 8
    using namespace std;
    int main () 
    {  
        int a[N];
        int n;
        cin>>n;
        for(int i=0;i<n;i++)
            cin>>a[i];
        sort(a,a+n);
        do 
        {    
            for(int j=0;j<n-1;j++)
                cout<<a[j]<<" ";
            cout<<a[n-1]<<endl;
        }while(next_permutation (a,a+n));
        return 0;
    } 
    

      

  • 相关阅读:
    json_encode不编码中文字符的方式
    网站备份脚本
    英语动词大全
    多线程和多进程的区别【转载网络】
    解决curl中errno为51和60的错误
    ps修改图片文字
    如何设计充值消费的数据表
    LoRa与NB-IoT对比(转载)
    vuejs 使用vue-cli引入bootstrap
    关于防火墙的规则
  • 原文地址:https://www.cnblogs.com/Rosanna/p/3436916.html
Copyright © 2011-2022 走看看