有点乱.不要介意 package com.test;import java.util.Date; import java.util.HashSet; import java.util.Iterator; import java.util.Set;public class TestMyArray { private int[] in; private Set<String> set; public TestMyArray(int l) { int[] sin = {1 , 2 , 2 , 3 , 4 , 5}; set = new HashSet<String>() ; in = sin; } public void getlist() { int langth = in.length; list(langth, langth); Iterator it = set.iterator(); while(it.hasNext()){ System.out.println(it.next()); } System.out.println(set.size()); } public void list(int length, int alllangth) { if (length == 1) { // print(); return; } if (length == 2) { checkprint(); if(changpn(alllangth - length, alllangth)) checkprint(); return; } for (int i = 0; i < length; i++) { list(length - 1, alllangth); changpn(alllangth - length, alllangth); } } public void checkprint(){ print();
} public void print() { StringBuffer bu = new StringBuffer() ; for (int i = 0; i < in.length; i++) bu.append(in[i]) ; set.add(bu.toString()) ; } public boolean changpn(int index, int alllangth) { int st = index + 1; for(int i = st ; i < alllangth ; i ++ ){ for(int j = i + 1; j < alllangth ; j ++){ if(in[i] > in[j]){ int va = in[i]; in[i] = in[j] ; in[j] = va ; } } } int temp; for (temp = index + 1; temp < alllangth; temp++) { if (in[index] < in[temp]) { int v = in[index]; in[index] = in[temp]; in[temp] = v; break; } } if(temp == alllangth) return false ; return true; } public static void main(String[] args) { TestMyArray tt = new TestMyArray(5); long o = new Date().getTime(); tt.getlist(); long n = new Date().getTime(); System.out.println(n - o); } }
public static void main(String []args) {
/*
if (args.length == 0) {
System.out.println("error");
} else {
char[] arr = args.toCharArray();
perm(arr,0,23);
}
*/
String str = "abc";
//System.out.println(str.length());
char[] arr = str.toCharArray();
perm(arr,0,str.length());
}
static void perm(char[] list,int k,int m) {
int i;
if (k == m) {
for(i=0; i<m; i++)
System.out.print(list[i]);
System.out.println("");
} else {
for(i=k; i<m; i++) {
swap(list, k, i);
perm(list, k + 1, m);
swap(list, k, i);
}
}
} static void swap(char[] arr, int i, int k){
char temp;
temp = arr[i];
arr[i] = arr[k];
arr[k] = temp;
}
}
package com.test;import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;public class TestMyArray {
private int[] in;
private Set<String> set; public TestMyArray(int l) {
int[] sin = {1 , 2 , 2 , 3 , 4 , 5};
set = new HashSet<String>() ;
in = sin; } public void getlist() {
int langth = in.length;
list(langth, langth);
Iterator it = set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
System.out.println(set.size()); } public void list(int length, int alllangth) {
if (length == 1) {
// print();
return;
}
if (length == 2) {
checkprint();
if(changpn(alllangth - length, alllangth))
checkprint();
return;
} for (int i = 0; i < length; i++) {
list(length - 1, alllangth);
changpn(alllangth - length, alllangth);
}
}
public void checkprint(){
print();
}
public void print() {
StringBuffer bu = new StringBuffer() ;
for (int i = 0; i < in.length; i++)
bu.append(in[i]) ;
set.add(bu.toString()) ;
} public boolean changpn(int index, int alllangth) {
int st = index + 1;
for(int i = st ; i < alllangth ; i ++ ){
for(int j = i + 1; j < alllangth ; j ++){
if(in[i] > in[j]){
int va = in[i];
in[i] = in[j] ;
in[j] = va ;
}
}
}
int temp;
for (temp = index + 1; temp < alllangth; temp++) {
if (in[index] < in[temp]) {
int v = in[index];
in[index] = in[temp];
in[temp] = v;
break;
}
}
if(temp == alllangth) return false ;
return true;
} public static void main(String[] args) {
TestMyArray tt = new TestMyArray(5);
long o = new Date().getTime();
tt.getlist();
long n = new Date().getTime();
System.out.println(n - o);
}
}
import java.util.*;
public class test {
public static void main(String[] arg) {
Scanner r=new Scanner(System.in);
String s=r.nextLine();
Pailie(s,"");
}
static void Pailie(String s, String p) {
if(s.length()<1) System.out.println(p+s);
else {
for(int i=0; i<s.length(); i++) {
Pailie(s.substring(1),p+s.substring(0,1));
s=s.substring(1)+s.substring(0,1);
}
}
}
}
结果:
ABC(这是输入行)
ABC
ACB
BCA
BAC
CAB
CBA
public class Test
{
public static void main(String args[])
{
char[] a={'a','b','c','d'};
char[] b={'a','b','c','d'};
char temp;
for(int j=0;j<a.length;j++)
{
for (int i=a.length-1;i>0 ;i-- )
{
temp=a[i-1];
a[i-1]=a[i];
a[i]=temp;
if (a!=b)
{
System.out.println(a);
}
}
}
}
}