全排列问题

#include <stdio.h>
#include <stdlib.h>

swap(char* str, int b, int e){
    char temp = str[b];
    str[b] = str[e];
    str[e] = temp;
}

print(char* str, int n){
    int i;
    for(i = 0; i< n; i++){
        printf("%c ", str[i]);
    }
    printf("\n");
}

int quanXuLie(char* str, int b, int n){
    int i;

    if(n <= 1){
        print(str, 3);
        return 1;
    }

    for(i = b; i < b + n; i++){
        swap(str, b, i);
        quanXuLie(str, b + 1, n - 1);
        swap(str, b, i);
    }
}

main(){
    char str[] = {'a', 'b', 'c'};
    quanXuLie(str, 0, 3);
}

 

posted @ 2014-03-03 10:39  yutoulck  阅读(154)  评论(0编辑  收藏  举报