码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 57.【全排列的详细分析】


     

     1.1    全排列的介绍

          2.1   方法和思路

             3.1    穷举法

                4.1    next_permutation()函数法

                      4.1.1      升序  

                          4.1.2     降序

           5     总结 


     

     1.1    全排列的介绍

     从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。

     2.1   方法和思路

      进行穷举法和特殊函数的方法,穷举法的基本思想是全部排列出来.特殊函数法进行特殊排列.

      3.1    穷举法

     【不包含重复数字的解法】    

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5. int a[3];
    6. cout << "请输入一个三位数:" << endl;
    7. for (int m = 0; m < 3; m++)
    8. {
    9. cin >> a[m];
    10. }
    11. for (int i = 0; i < 3; i++)
    12. {
    13. for (int j = 0; j < 3; j++)
    14. {
    15. for (int k = 0; k < 3; k++)
    16. {
    17. if (i != j && i != k && j != k)
    18. {
    19. cout << a[i] << a[j] << a[k] << " ";
    20. }
    21. }
    22. }
    23. }
    24. }

    【包含重复数据的解法】   

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5. int a[3];
    6. cout << "请输入一个三位数:" << endl;
    7. for (int m = 0; m < 3; m++)
    8. {
    9. cin >> a[m];
    10. }
    11. for ( int i = 0; i < 3; i++)
    12. {
    13. for (int j = 0; j < 3; j++)
    14. {
    15. for (int k = 0; k < 3; k++)
    16. {
    17. if (i != j && i != k && j != k)
    18. {
    19. cout << a[i] << a[j] << a[k] << " ";
    20. }
    21. else if(i==j&&i==k&&j==k)
    22. {
    23. cout << a[i] << a[j] << a[k] << " ";
    24. }
    25. }
    26. }
    27. }
    28. }

     

    4.1    next_permutation()函数法而且调用了sort()排序函数

      什么是sort函数?     http://t.csdn.cn/Tq9Wn

    这种方法也是小编特别推荐使用的,因为这种方法不仅可以高效的进行排序而且特别容易理解.

    速达ERP实施详细分析
    application/x-zip 3星 超过75%的资源 16KB
    下载
    next_permutation(s1.begin(), s1.end())

       解释:s1.begin(),是字符串的开头,s1.end()是字符串的结尾   

    头文件:

    #include 

        4.1.1      升序          

    1. #include
    2. #include
    3. #include
    4. using namespace std;
    5. int main()
    6. {
    7. string s1;
    8. cout << "请输入您要的数据:" << endl;
    9. cin >> s1;
    10. do
    11. {
    12. cout << s1 << " ";
    13. } while (next_permutation(s1.begin(), s1.end()));
    14. }

                f1779de4a4354a75b112266bede13ea5.png

      4.1.2     降序

    1. bool cmp(int a, int b)
    2. {
    3. return a > b;
    4. }
    while (next_permutation(s1.begin(), s1.end(),cmp));
    sort(s1.begin(), s1.end(), cmp);
    kbuild完整详细分析
    application/pdf 5星 超过95%的资源 1.25MB
    下载

       

     比升序多了以上三个数据

    1. #include
    2. #include
    3. #include
    4. using namespace std;
    5. bool cmp(int a, int b)
    6. {
    7. return a > b;
    8. }
    9. int main()
    10. {
    11. string s1;
    12. cout << "请输入您要的数据:" << endl;
    13. cin >> s1;
    14. sort(s1.begin(), s1.end(), cmp);
    15. do
    16. {
    17. cout << s1 << " ";
    18. } while (next_permutation(s1.begin(), s1.end(),cmp));
    19. }

    885e220397c946139dd029a530782462.png

     

     5 .总结 

      有穷法具有有限性,然而特殊函数法会较好的解决了这个问题

     

     

     

  • 相关阅读:
    SpringBoot+Vue小区物业管理系统 附带详细运行指导视频
    一文了解企业云盘和大文件传输哪个更适合企业传输
    aiohttp从入门到精通
    计算机 软件工程 毕业设计题目推荐
    MySQL表的内连和外连
    【每日一题】34. 在排序数组中查找元素的第一个和最后一个位置
    基于LSTM的诗词生成
    AQS核心原理分析《下》
    做外贸必知——你还不知道外贸拼箱技巧吗
    pcie 总结
  • 原文地址:https://blog.csdn.net/qq_69683957/article/details/126132962
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号