winzenghua 发表于 2013-2-1 13:23:03

c++ 排列 算法

这个算法,弄头疼了 一上午还是对其中递归是抹零两可的。
论坛地址:http://topic.csdn.net/u/20091017/11/57e2123c-04f2-431d-be02-f3485fbb8b24.html
代码如下:
// test1.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>#include <string>using namespace std;#include <stdio.h>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);         printf("\n");         n++;      }      else      {         for(i = k; i <= m; i++)         {                swap(&list, &list);                perm(list, k + 1, m);      swap(&list, &list);   }      } } int main() {      int list[] = {1, 2, 3, 4, 5};      perm(list, 0, 4);      printf("total:%d\n", n);   return 0; }
页: [1]
查看完整版本: c++ 排列 算法