文档库 最新最全的文档下载
当前位置:文档库 › 全排列的递归算法C++(带截图)

全排列的递归算法C++(带截图)

全排列的递归算法C++(带截图)
全排列的递归算法C++(带截图)

全排列的递归算法

全排列的递归算法:10个数的全排列

代码:

#include

int n = 0;

void swap(int *a, int *b)

{

int m;

m = *a;

*a = *b;

*b = m;

}

void perm(int list[], int k, int m)

{

int i;

if(k > m)

{

for(i = 0; i <= m; i++)

printf("%d ", list[i]);

printf("\n");

n++;

}

else

{

for(i = k; i <= m; i++)

{

swap(&list[k], &list[i]);

perm(list, k + 1, m);

swap(&list[k], &list[i]);

}

}

}

int main()

{

int list[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

perm(list, 0, 9);

printf("total:%d\n", n);

return 0;

}

说明:

本程序是10个数字1,2,3,4,5,6,7,8,9,10的全排列递归算法,主要想看一下十个数字的递归算法执行时间如何,程序结果证明,速度较慢,需要时间较长。程序截屏如下:

相关文档