abcd排序
来源:互联网 发布:java获取kafka offset 编辑:程序博客网 时间:2024/05/14 08:59
package cn.heima;
public class StringPaile {
/**
* @param args
*/
public static void main(String[] args) {
String s="asd";
int len = s.length();
char[] sb = new char[len];
char[] cc =s.toCharArray();//把string转变为char数组
int[] index = new int[len];
long startTime = System.currentTimeMillis();//记录开始时间
mixThey(cc,sb,0,len,index);
long endTime = System.currentTimeMillis();//记录结束时间
System.out.println((endTime-startTime)/1000f +"秒");//求出运行用的时间
}
public static void mixThey(char[] cc,char[] sb,int i,int n,int[] index) {
if(i==n){//如果i=n表明已运行完输出某种排列
System.out.println(new String(sb));
return;//出栈
}else{
for(int j=0;j<n;j++){//第一个数有len种排列第二个有len-1种第三次有len-2依次类推
boolean flag =false;//设置一标记
for(int k=0;k<i;k++){//我用循环来看前面是否已存在
if(index[k]==j){//如果前面存在就停止查找把flag设为true
flag=true;
break;
}
}
if(flag) continue;//如果为true说明有就继续找
index[i]=j;//能运行到这里表明前面中没有
sb[i]=cc[j];//把它存入sb数组中
mixThey(cc,sb,i+1,n,index);//接着用递归来处理sb数组i+1位子的放什么
}
}
}
}
public class StringPaile {
/**
* @param args
*/
public static void main(String[] args) {
String s="asd";
int len = s.length();
char[] sb = new char[len];
char[] cc =s.toCharArray();//把string转变为char数组
int[] index = new int[len];
long startTime = System.currentTimeMillis();//记录开始时间
mixThey(cc,sb,0,len,index);
long endTime = System.currentTimeMillis();//记录结束时间
System.out.println((endTime-startTime)/1000f +"秒");//求出运行用的时间
}
public static void mixThey(char[] cc,char[] sb,int i,int n,int[] index) {
if(i==n){//如果i=n表明已运行完输出某种排列
System.out.println(new String(sb));
return;//出栈
}else{
for(int j=0;j<n;j++){//第一个数有len种排列第二个有len-1种第三次有len-2依次类推
boolean flag =false;//设置一标记
for(int k=0;k<i;k++){//我用循环来看前面是否已存在
if(index[k]==j){//如果前面存在就停止查找把flag设为true
flag=true;
break;
}
}
if(flag) continue;//如果为true说明有就继续找
index[i]=j;//能运行到这里表明前面中没有
sb[i]=cc[j];//把它存入sb数组中
mixThey(cc,sb,i+1,n,index);//接着用递归来处理sb数组i+1位子的放什么
}
}
}
}
0 0
- abcd排序
- abcd
- abcd
- ABCD
- abcd
- abcd
- abcd
- abcd
- 程序语言ABCD....
- "abcd"->"dcba"
- cf671 abcd
- “abcd efgh”到“efgh abcd”算法
- 简单打印abcd组合
- ABCD*E=DCBA
- Codeforces Round 237 ABCD
- uvalive 4997 ABCD Tiles
- 多线程连续输出ABCD
- 【codeforces】Round #269 ABCD
- Mac 直连PC共享的一个坑
- Mac OS X EI Captitan 配置 Apache https 网站 & 发布 ios 企业级APP(Enterprise)
- #include与#import的区别,#import 与@class 的区别
- 线程间的基本通信的实现
- (整理)Java实现链表的增加和删除(表头不为空)
- abcd排序
- vs2013出现error C4996问题
- Android开发中的权限
- Struts2 异常处理
- 加载gif图片的方法:(需要SDWebImage方法)
- MyReport报表引擎:水印功能
- Genymotion不能运行的解决办法
- 输入字符串,分解字符串数组
- jquery来制作动态加载树