zoukankan      html  css  js  c++  java
  • 基本算法——全排列

    对n个数进行全排列,有n!种排列方式。这里我们使用递归方式处理,将问题切割为较小的单元进行排列组合。

    例如1 2 3 4的排列可以分为1 [2 3 4],2[1 3 4],3[1 2 4],4[1 2 3]进行排列。即每一个元素都当一次首位,然后剩余的元素再递归进行全排列。

    第0层      第1层     第2层 ...

    1234      1 2 3 4    继续将右边2 3 4进行递归处理 ...
          2 1 3 4      继续将右边1 3 4进行递归处理 ...
          3 1 2 4      继续将右边1 2 4进行递归处理 ...
          4 1 2 3      继续将右边1 2 3进行递归处理 ...

        vector<vector<int> > ans;
        
        void permutation(vector<int> &a, int begin, int end) 
      {
    if (begin==end) { ans.push_back(a); return; } else { int i = begin; for (; i <= end ; ++i) { swap(a[i], a[begin]); permutation(a, begin+1, end); swap(a[i], a[begin]); } } }
  • 相关阅读:
    *pwn*练习1——攻防世界-when_did_you_born
    PWN——uaf漏洞学习
    pwnable.kr之passcode
    pwnable.kr之flag
    pwnable.kr之brainf*ck
    pwnable.kr之simple Login
    pwnable.tw start&orw
    RTF文件格式
    jarvis level6_x64堆溢出unlink拾遗
    jarvisoj level5爬坑
  • 原文地址:https://www.cnblogs.com/chenbjin/p/3681457.html
Copyright © 2011-2022 走看看