读书人

全部排序

发布时间: 2012-10-27 10:42:26 作者: rapoo

所有排序

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);}}

读书人网 >软件架构设计

热点推荐