july 2009年08月21日 星期五 15:20 | 1457次浏览 | 0条评论
permutation algorithm
这里实现了Python和c++的版本的全排列算法。
def perm(lst, lst2=[]):
if len(lst) == len(lst2):
print lst2
else:
for i in lst:
if i in lst2:continue
lst2.append(i)
perm(lst, lst2)
lst2.pop()
perm([1,2,3,4,5])
---------------------------------------
#include "stdio.h"
int perm(int * a, int * b, int len, int pos)
{
if(pos==len){
for(int i=0;i<len;i++)
printf("%d,", b[i]);
printf("\n");
}
else
for(int i=0;i<len;i++){
int flag = 0;
for(int j=0;j<pos;j++)
if(b[j]==a[i])
flag = 1;
if(flag) continue;
b[pos] = a[i];
pos ++;
perm(a, b, len, pos);
pos --;
}
return 0;
}
int main()
{
int a[] = {1,2,3,4,5};
int b[5];
perm(a, b, 5, 0);
return 0;
}
Zeuux © 2024
京ICP备05028076号
暂时没有评论