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

    全排列可以用递归的方式手写,不过c++函数库里自带一个全排列函数。

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<algorithm>
     4 using namespace std;
     5 int a[4] = {3, 4, 2, 6}, cnt = 0;
     6 int main()
     7 {
     8     sort(a , a + 4);    //用全排列时必须先排序,虽然我也不知道为什么 
     9     do
    10     {
    11         printf("%d %d %d %d
    ", a[0], a[1], a[2], a[3]);
    12         cnt++;
    13     }
    14     while(next_permutation(a, a + 4));    //注意格式 
    15     /*之所以是 do-while,是因为若直接 while 的话,函数已经
    16     开始运行,就少了第一组解 */ 
    17     printf("total=%d
    ", cnt);
    18     return 0;
    19 }

    输出

    n 的全排列就是 n! 嘛

    值得一提的是,这个函数并不会改变数组内元素的值和位置,数组还是 sort 后的样子。

  • 相关阅读:
    SDN第二次作业
    事后诸葛亮
    SDN第一次上机作业
    个人作业——软件产品案例分析
    SDN第一次作业
    Alpha冲刺总结报告
    Alpha冲刺Day10
    Alpha冲刺Day9
    Alpha冲刺Day8
    Alpha冲刺Day7
  • 原文地址:https://www.cnblogs.com/mrclr/p/8387042.html
Copyright © 2011-2022 走看看