package corejava;
import java.util.LinkedHashSet;
import java.util.Set;
/**
* (机能概要描述)
*
* <pre>
* [变更履历]
* 09.07.20.NICKLE NET 初版
* </pre>
*
* @author NICKLE)王
*/
public class Test {
private static Set<String> set = new LinkedHashSet<String>();
private static void perm(int[] arr, int k, int m) {
if (k == m) {// 递归
StringBuffer sb = new StringBuffer();
for (int i = 0; i <= m; i++)
sb.append(arr[i]);
set.add(sb.toString());
} else {
for (int i = k; i <= m; i++) {
arr[k] = (arr[k] + arr[i]) - (arr[i] = arr[k]); // 交换arr[k] <->
// arr[i]
perm(arr, k + 1, m);
arr[k] = (arr[k] + arr[i]) - (arr[i] = arr[k]); // 交换arr[k] <->
// arr[i]
}
}
}
public static String[] getPerm(int[] arr, int k, int m) {
perm(arr, k, m);
return set.toArray(new String[set.size()]);
}
public static void main(String[] args) {
int[] test = { 1, 2, 3 };
String[] perms = getPerm(test, 0, test.length - 1);
for (String s : perms)
System.out.println(s);
}
}
分享到:
相关推荐
Java实现的所有排序算法Java实现的所有排序算法
Java所有排序算法大全 Java所有排序算法大全 Java所有排序算法大全 Java所有排序算法大全
数据结构实验中所有排序算法
数据结构中的所有排序算法数据数据结构中的所有排序算法结构中的所有排序算法
简洁代码,c++ 语音打印出字符串的所有排序的可能。牛客网上的题目。
C#所有排序算法源代码
大一所有排序.cpp
C++数据结构中的所有排序算法,含有冒泡排序,改进的选择排序,快速排序等经典的排序算法!
直接选择排序、堆排序、冒泡排序、快速排序、直接插入排序、折半插入排序、Shell排序、归并排序、桶式排序、基数排序
Java算法集锦,基本包含了所有排序~~~
直接选择排序、堆排序、冒泡排序、快速排序、直接插入排序、折半插入排序、Shell排序、归并排序、桶式排序、基数排序
有10余种排序算法的代码和图解分析,同时还有之间的区别,其中涉及到一些基础的数据结构,树,图,二叉树,堆等.堆排序,快速排序,希尔排序,归并排序,插入排序,选择....
本文档是用c语言写的可成功执行的源代码,包括所有数据结构中的排序方法,包括快速排序、选择排序、希尔排序、插入排序等
一些对基本排序算法的实现,已经附上源码,都可以直接使用~
资源介绍:。看了帝皇法老关于排序的,做了这个应该能加深对排序算法的记忆. 不要看代码代码写的乱会越看越乱。注:由于我对排序算法理解的...没有都所有排序都进行演示,也是我技术不够的原因。资源作者:。资源下载:。
java数组排序的思想,过程和代码实现。多种数组排序的方法,主要有冒泡排序,堆排序,插入排序, 归并操作(merge), 归并操作(merge),选择排序,希尔排序。
里面包含了所有的排序算法,并且利用java语言来实现这些算法。很适合数据结构的学习者参考
C语言所有排序大全,解决了您日常上课考试学习的需要,在这里每一个程序都没有错误,其中压缩包包括了归并排序;基数排序;快速排序;冒泡排序;选择排序;折半排序;希尔排序这些日常排序,因为是全集所以大家踊跃...
包含了所有的排序算法,以及排序源代码 可在VC中运行
对起泡排序、直接排序、简单选择排序、快速排序、希尔排序、堆排序算法进行比较(详细文档)源码 即使不是为了实现这个排序方法的比较也可以下载,都有每个排序方法实现的代码 C语言实现