累了回巢。。。 发表于 2014-11-10 13:33:14

求大神全排列递归方法解决

9重循环72个不等式写的实在是跪了
求大神能递归解决

仰望天上的光 发表于 2014-11-10 21:53:40

#include <stdio.h>

void permutation( int* pData, int begin, int end );
void print( int* pData, int end );
void swap( int *pData, int left, int right );
int main() {
        int data = {1,2,3,4,5};
        permutation( data, 0, 4 );
}

void permutation( int* pData, int begin, int end ) {
        if( begin == end ) print( pData, end );
        else {
                int i = begin;
                for( ; i <= end; ++i ) {
                        swap( pData, begin, i );
                        permutation( pData, begin+1, end );
                        swap( pData, begin, i );
                }
        }
}

void print( int* pData, int end ) {
        int i;
        for( i=0;i <= end; ++i ) printf("%d ", pData);
        printf("\n");
}

void swap( int *pData, int left, int right ) {
        int tmp = pData;
        pData = pData;
        pData = tmp;
}

怡静 发表于 2014-11-17 20:48:16

仰望天上的光 发表于 2014-11-10 21:53


谢谢楼主答复!

康小泡 发表于 2014-11-25 12:35:13

{:9_240:}学C的时候就觉得递归好难

鱼汇编 发表于 2014-11-27 16:26:39

页: [1]
查看完整版本: 求大神全排列递归方法解决