赞
踩
您们好!本人为刚刚进入社会的小白!
如有讲解不到位,还望各位高猿不吝赐教!
#include "pch.h" #include<iostream> using namespace std; int a = 0; //交换 void swap(int &a, int &b) { int temp; temp = a; a = b; b = temp; } //全排列递归算法 void Perm(int list[], int k, int m) { //list 数组存放排列的数,K表示层 代表第几个数,m表示数组的长度 if (k == m) { //K==m 表示到达最后一个数,不能再交换,最终的排列的数需要输出; for (int i = 0; i <= m; i++) cout << list[i]; cout << endl; } else { for (int i = k; i <= m; i++) { swap(list[i], list[k]); Perm(list, k + 1, m); swap(list[i], list[k]); } } } int main(void) { int a[] = { 1,2,3,4 }; int m = 2; Perm(a, 0, m); /*123,132,213,231,321,312*/ }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。