六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 34|回复: 0

生成排列数(java&c++)

[复制链接]

升级  74%

47

主题

47

主题

47

主题

秀才

Rank: 2

积分
161
 楼主| 发表于 2013-1-26 13:59:22 | 显示全部楼层 |阅读模式
[size=large]用递归的方法生成一列数的所有排列组合

public class Main {public static void main(String[] args) {Integer[] a = {1, 2, 3, 4};perm(a, 0, 3);}public static void perm(Object[] list, int k, int m) {if(k==m) {for(int i=0; i<=m; i++)System.out.print(list);System.out.println();}elsefor(int i=k; i<=m; i++) {swap(list, k, i);perm(list, k+1, m);swap(list, k, i);}}public static void swap(Object[] list, int k, int m) {Object temp;temp = list[k];list[k] = list[m];list[m] = temp;}}



void swap(int* list , int k, int m) {    int temp;    temp = list[k];    list[k] = list[m];    list[m] = temp;}void perm(int list[], int k, int m) {    if(k==m) {        for(int i=0; i<=m; i++) {            cout<<list;        }        cout<<endl;    }    else {        for(int i=k; i<=m; i++) {            swap(list, k, i);            perm(list , k+1, m);            swap(list, k, i);        }    }}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表