全排列.cpp

来自「部分线性代数计算算法」· C++ 代码 · 共 31 行

CPP
31
字号
#include <iostream>
using namespace std;

template <typename T>
void Arrange(T Test[], int begin, int end)
{
    if(begin == end){
        for(int i = 0; i <= end; ++i)
            cout << Test[i] << '\t';
        cout << endl;
    }
    else{
        for(int i = begin; i <= end; ++i){
            swap(Test[begin], Test[i]);            
            Arrange(Test, begin + 1, end);            
            swap(Test[begin], Test[i]);
        }
    }
}

int main()
{
    char a[] = {'a', 'b', 'c', 'd'};
    int min = 0;
    int max = sizeof a / sizeof *a - 1;
    Arrange(a, min, max);
    cin.get();
    return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?