C语言全排序的算法
作者:拉格浪日 标签:编程 | 阅读次数:531 |
![]() ![]() ![]() |
| ![]() ![]() ![]() |
1 递归法,在dev c上实现
#include #include void Swap(char* a, char* b) {// 交换a和b char temp; temp = *a; *a = *b; *b = temp; } void Perm(char list[], int k, int m) { //生成list [k:m ]的所有排列方式 int i; if (k == m) {//输出一个排列方式 for (i = 0; i <= m; i++) putchar(list[i]); putchar('\n'); } else // list[k:m ]有多个排列方式 // 递归地产生这些排列方式 for (i=k; i <= m; i++) { Swap (&list[k], &list[i]); Perm (list, k+1, m); Swap (&list [k], &list [i]); } } int main(int argc, char *argv[]) { char s[6]="01234"; Perm(s,0,4); system("PAUSE"); return 0; } |