java全排列实现
2013-08-19 18:34
197 查看
package com.ming; /* * 递归的思想实现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; } } } } /* * 自己想法:for循环就是把第i个数与i...n的数交换一遍位置,也就是这一位遍历了i后面所有的数(因为i前的数已经确定了) * 然后用递归的思想把数的长度一点点缩短,即i的初始值每次递归+1,直到i=n */
相关文章推荐
- 给定一个数组,求出数组元素的排列和组合——Java实现
- java实现排列组合实现
- 字符串排列和组合的JAVA实现 [No. 44]
- 求全排列问题--- java实现
- 利用java实现单词倒序排列
- java实现字母的升序排列,和中文升序排列
- java字符串全排列的实现方式
- 备考蓝桥杯(37)超级无敌经典的全排列算法 java实现
- Java实现-排列序号2
- 【小程序】JAVA实现从10~50中随机生成50个数,统计出现的数字及次数,输出出现最多的次数及对应的数字,按数字升序排列。
- 排列生成算法实现java
- 字符串全排列 java实现
- java实现有条件字符串全排列输出
- java实现1、2、2、3、4、5排列问题
- JAVA里实现一个数组全排列的方法
- 剑指offer--面试题28:字符串的排列--Java实现
- Java 数组全排列 递归实现
- 递归的使用——关于括号排列(分别使用Java和C++算法实现)
- 字符串排列和组合的JAVA实现
- 多个数组间元素排列组合问题求解(Java实现)