`
jsjzhou
  • 浏览: 28559 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

编程打印全排列

阅读更多
package org.jenfer.test;


/**
 * 求一组数的全排列
 * 比如123
 * 输出:
 * 321
 * 231
 * 213
 * 312
 * 132
 * 123
 * @author zhoujh
 * 作者简介:周剑华,武汉科技大学计算机硕士研究生
 *
 */
public class ArrangeTest {
	public static void main(String[] args) {
		arrange("123");
	}

	/**
	 * 排列
	 * @param tab
	 */
	public static void arrange(String tab) {
		if(tab.length()<=1){
			System.out.println("组合为:" +tab);
		}else{
			arrangeHelper(""+tab.charAt(0),tab.substring(1));
		}
	}

	/**
	 * 辅助类
	 * @param prefix
	 * @param suffix
	 */
	private static void arrangeHelper(String prefix, String suffix) {
		//打印结果
		if(suffix.length()==1){
			for (int i = 0; i < prefix.length()+1; i++) {
				String partOne=prefix.substring(0,i);
				String partTwo=prefix.substring(i,prefix.length());
				System.out.println(partOne+suffix+partTwo);
			}
		}else{
			for (int i = 0; i < prefix.length()+1; i++) {
				String partOne=prefix.substring(0,i);
				String partTwo=prefix.substring(i,prefix.length());
				arrangeHelper(partOne+suffix.charAt(0)+partTwo,suffix.substring(1));
			}
		}
	}
}

 

分享到:
评论

相关推荐

    c++编写的全排列源代码

    本文将深入解析一个C++程序示例,该程序旨在生成指定数字集合的所有可能全排列,这对于理解递归算法、数组操作以及逻辑判断等核心编程概念具有重要价值。 ### 全排列的概念 全排列是指从n个不同元素中取出m(m≤n)...

    生成全排列矩阵.zip

    这个例子展示了如何使用MATLAB内置的`perms`函数,生成指定序列的全排列,并通过循环打印出来。 全排列矩阵在组合优化、图论、密码学等领域有多种应用。例如,在密码学中,全排列矩阵可以用来创建混淆矩阵,增加...

    Python实现全排列的打印

    在信息技术领域中,全排列是算法和编程经常讨论的一个经典问题。全排列是指对于一个序列的所有元素,将其进行所有可能的排列组合。在Python编程语言中,实现全排列功能通常会使用递归算法来完成。本文将详细介绍如何...

    python练习fibonacci全排列

    在编程领域,Python是一种广泛应用的高级编程语言,以其简洁易读的语法和强大的功能而闻名。本主题将深入探讨两个核心概念:Fibonacci数列和全排列算法,这些都是计算机科学和算法设计的基础。 首先,让我们关注...

    全排列VisualC++程序

    // 生成并打印全排列 permute(0); return 0; } ``` 这个简化的示例展示了如何在VC++环境中使用C++标准库进行全排列。实际的"perm.cpp"文件可能会包含更复杂的逻辑,例如错误处理、输入验证、性能优化等。通过...

    C/C++全排列

    在C/C++编程语言中,实现全排列通常需要借助递归或回溯法。以下是对全排列及其C/C++实现的详细解释。 首先,全排列是指从给定的n个不同元素中取出所有可能的m个元素的排列方式,其中m小于等于n。如果m等于n,那么这...

    五个数的全排列

    在编程领域,全排列是一个经典的算法问题,它涉及到如何生成一组特定数量的元素的所有可能排列。在这个场景中,我们关注的是使用C语言来实现对5个数的全排列。C语言是一种底层、高效的编程语言,适合处理这种计算...

    C语言实现的全排列算法

    全排列算法是计算机科学中一个基础且重要的概念,特别是在算法设计和组合数学中。全排列是指从n个不同元素中取出m个元素,按照一定的...通过理解并掌握全排列算法,开发者可以更好地应对需要穷举所有可能性的编程挑战。

    objective-c数组全排列算法

    在iOS开发中,Objective-C是一种常用的编程语言,用于构建iPhone、iPad等Apple设备的应用程序。在处理某些问题时,如生成所有可能的组合或者解决排列组合问题,全排列算法是必不可少的工具。全排列指的是从n个不同...

    全排列VC源代码,仅供参考

    - 主函数(main):这是程序的入口,用于初始化、调用全排列函数并打印结果。 - 全排列函数(如permute):接受一个数组和当前的排列状态,递归地生成所有可能的排列。 - 打印函数(print):用于输出生成的排列。 ...

    全排列算法部分算法需要自己优化修改

    1. 当`start`等于`end`时,表示已经完成了一个排列,此时打印或记录这个排列。 2. 对于`start`到`end`之间的每个元素,将其与`start`位置的元素交换,然后递归处理剩余的子问题,即调用`fullPermutation(arr, start+...

    重复元素全排列

    重复元素全排列算法是计算机科学中一个有趣且实用的课题,它不仅考验着编程者的逻辑思维能力,同时也涉及到算法设计、数据结构应用以及异常处理等多方面的技能。通过深入理解其工作原理并动手实践,我们可以更好地...

    全排列问题

    全排列问题是一个经典的计算机科学问题,它涉及到对一组对象的所有可能排列进行枚举。在算法设计和分析中,通常会采用递归和回溯的方法来...理解并掌握这种算法设计思路,对于提升编程能力和解决类似问题具有重要意义。

    c++-c++编程基础之leetcode题解第46题全排列.zip

    当剩余数量为0时,表示当前排列是一个有效的全排列,可以打印出来。然后,对于每个未使用的数字,将其添加到当前排列中,并递归地处理剩余的数字。如果在某一步中发现错误(如重复数字),则回溯到上一步,尝试其他...

    quanpailie.rar_C++生成全排列_c quanpailie_全排列+c++

    在编程领域,全排列是一种常见的算法问题,它涉及到对一组数据进行所有可能的无重复、有序的排列。这里我们关注的是使用C++语言来实现全排列的算法。C++是面向对象的编程语言,它的效率高,功能强大,非常适合解决这...

    输出n个整数的全排列

    这个任务通常用递归或回溯法来解决,对于学习编程和算法思维具有很高的价值。 全排列是指从n个不同元素中取出n个元素,按照一定的顺序排列,每一种排列都是一个不同的排列。例如,对于数字集合{1, 2, 3},全排列有...

    QuanPaiLie.rar_全排列

    本示例"QuanPaiLie.rar_全排列"提供了一个用编程语言实现的全排列算法,用于展示三个元素的所有可能排列方式。 全排列的计算可以通过回溯法、递归法或者迭代法来实现。在这里,我们重点讨论递归方法,因为它是理解...

    qiongjufa.rar_全排列

    全排列是一种经典的算法问题,它涉及到计算机科学中的组合数学和递归编程。在这个"qiongjufa.rar_全排列"的压缩包中,我们可以推测包含的是一个使用穷举法来实现全排列的示例,可能是以文档形式(qiongjufa.doc)...

    全排列算法

    在编程中,全排列通常是指从给定的n个不同元素中,按照一定的顺序取出所有可能的排列组合。这种算法涉及到的主要知识点包括递归、回溯、组合数学和效率优化。 1. **递归思想**: 全排列问题非常适合使用递归来解决...

    寒假40.全排列2_全排列_40_

    在实际编程中,`寒假40.全排列2.cpp` 文件应该包含了这个算法的完整实现,并且`寒假40.全排列2.exe` 是编译后的可执行程序,可以直接运行以测试和验证算法的正确性。通过运行这个程序,你可以得到1到n的所有可能排列...

Global site tag (gtag.js) - Google Analytics