package com.meritit.func;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author Administrator
*
* 实现字符串的全排序
*
* 非递归实现
*
*/
public class FullArrayTest {
private List<Object> fullSort(Object obj){
List<Object> list = new ArrayList<Object>();
//暂且只显现字符串的,其他的类似
if(obj instanceof String){
String str = (String) obj;
char[] charArray = str.toCharArray();
int len = charArray.length;
//从前往后交换
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++) {
swap(charArray,i, j);
}
}
//从后往前交换
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++) {
swap(charArray,i, j);
}
}
}
return list;
}
private void swap(char[] str, int i, int j) {
char temp;
temp = str[i];
str[i] = str[j];
str[j] = temp;
System.out.println(str[0] + "-" + str[1] +"-" + str[2]);
}
public static void main(String[] args) {
FullArrayTest tes = new FullArrayTest();
tes.fullSort("1234");
}
}
import java.util.ArrayList;
import java.util.List;
/**
*
* @author Administrator
*
* 实现字符串的全排序
*
* 非递归实现
*
*/
public class FullArrayTest {
private List<Object> fullSort(Object obj){
List<Object> list = new ArrayList<Object>();
//暂且只显现字符串的,其他的类似
if(obj instanceof String){
String str = (String) obj;
char[] charArray = str.toCharArray();
int len = charArray.length;
//从前往后交换
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++) {
swap(charArray,i, j);
}
}
//从后往前交换
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++) {
swap(charArray,i, j);
}
}
}
return list;
}
private void swap(char[] str, int i, int j) {
char temp;
temp = str[i];
str[i] = str[j];
str[j] = temp;
System.out.println(str[0] + "-" + str[1] +"-" + str[2]);
}
public static void main(String[] args) {
FullArrayTest tes = new FullArrayTest();
tes.fullSort("1234");
}
}