java排列组合

/*

 * 递归的思想实现java的全排列问题

 * 说明:解题思想是,分别固定一个开头字母,然后将其后面的所有字母进行全排列

 * 随后改变开头字母,将其和它后面的一个字母调换,继续完成开始字母后面的所有字母的全排列

 * 随后再次改变开头字母,依次...直至和首字母和最后一位字母交换后为止

 */

 

public class AllSort {

public static void main(String[] args) {

// TODO Auto-generated method stub

char c[] = { 'x', 'y', 'z' };// 声明一个字符型数组

sort(c, 0, c.length - 1);// 调用函数,进行排列

}

 

public static void sort(char[] c, int begin, int end) {

if (begin == end) {// 如果begin等于end说明,数组中的元素交换完毕,可以进行打印输出

for (int i = 0; i <= end; i++) {// 循环数组,进行输出操作

System.out.print(c[i]);

}

System.out.println();// 换行控制符

} else {// 如果元素还没有交换完毕,继续进行递归

for (int i = begin; i <= end; i++) {

char temp = c[begin];// 将首元素与其后的第i个元素进行交换

c[begin] = c[i];

c[i] = temp;

// 递归循环调用

sort(c, begin + 1, end);

// 还原数组

c[i] = c[begin];

c[begin] = temp;

}

}

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值