全排列的应用算法
2012-03-23 07:49
253 查看
/**
* 将5,6,7,8,9添加下面的空格里,使他们的积有最大值。
__ __ __ × __ __
使用穷举法,把5个数字循环判断放入数组,最大的值就是要找的值。
*/
package 基础题;
import java.util.ArrayList;
public class MaxSum {
staticArrayList<String> ls=new ArrayList<String>();
public static void main(String[] args) {
// TODO Auto-generated method stub
String str="56789";
char c[] = str.toCharArray();// 声明一个字符型数组
int max=0;
String rs=null;
ArrayList<String> list=sort(c, 0, c.length - 1);
for(int i=0;i<list.size();i++){
String str1=list.get(i).substring(0, 3);
String str2=list.get(i).substring(3);
int result=Integer.parseInt(str1)*Integer.parseInt(str2);
if(max<result){
max=result;
rs=str1+"*"+str2;
}
System.out.println(str1+"*"+str2+"="+result);
}
System.out.print("最大的乘积为:"+max);
}
public static ArrayList<String> sort(char c[],int begin,int end){
String str="";
if(begin==end){//如果begin==end说明数组中的元素交换完毕,可以打印输出
for(int i=0;i<=end;i++){
str+=c[i];
}
ls.add(str);
//System.out.println();
}else{
for(int i=begin;i<=end;i++){
//将首元素与气候的第i个元素进行交换
char temp=c[begin];
c[begin]=c[i];
c[i]=temp;
//递归循环调用
sort(c,begin+1,end);
//还原数组
c[i]=c[begin];
c[begin]=temp;
}
}
return ls;
}
}
* 将5,6,7,8,9添加下面的空格里,使他们的积有最大值。
__ __ __ × __ __
使用穷举法,把5个数字循环判断放入数组,最大的值就是要找的值。
*/
package 基础题;
import java.util.ArrayList;
public class MaxSum {
staticArrayList<String> ls=new ArrayList<String>();
public static void main(String[] args) {
// TODO Auto-generated method stub
String str="56789";
char c[] = str.toCharArray();// 声明一个字符型数组
int max=0;
String rs=null;
ArrayList<String> list=sort(c, 0, c.length - 1);
for(int i=0;i<list.size();i++){
String str1=list.get(i).substring(0, 3);
String str2=list.get(i).substring(3);
int result=Integer.parseInt(str1)*Integer.parseInt(str2);
if(max<result){
max=result;
rs=str1+"*"+str2;
}
System.out.println(str1+"*"+str2+"="+result);
}
System.out.print("最大的乘积为:"+max);
}
public static ArrayList<String> sort(char c[],int begin,int end){
String str="";
if(begin==end){//如果begin==end说明数组中的元素交换完毕,可以打印输出
for(int i=0;i<=end;i++){
str+=c[i];
}
ls.add(str);
//System.out.println();
}else{
for(int i=begin;i<=end;i++){
//将首元素与气候的第i个元素进行交换
char temp=c[begin];
c[begin]=c[i];
c[i]=temp;
//递归循环调用
sort(c,begin+1,end);
//还原数组
c[i]=c[begin];
c[begin]=temp;
}
}
return ls;
}
}
相关文章推荐
- 啊哈算法DFS应用之全排列
- 深度学习在自然语言处理的应用 2017-07-07 Jonathan Mugan 关于算法的那些事 在深度学习出现之前,我们书写的文字所包含的意思是通过人为设计的符号和结构传达给计算机的。我在上一篇
- Java实战应用视频教程之Java算法分析与设计
- 加拿大在音频压缩算法和处理技术上有相当的研究和应用
- 算法设计与应用基础:第七周
- Stereo Matching文献笔记之(六):浅谈置信度传播算法(Belief-Propagation)在立体匹配中的应用~
- 推荐算法对淘宝卖家数据分析的应用
- 转:PHP中的密码学算法及其应用2-对称密码算法
- 顺序表应用1:多余元素删除之移位算法
- 社团发现算法研究和在SNS网络中的应用
- 某些数学应用的固定算法
- 算法设计与应用基础:第十六周(1)
- 字典序全排列算法研究
- 全排列的算法(六)——回溯法
- 算法实战:根据Key或Value对Map进行排序及其应用
- 全排列生成算法
- 智能摄像机的硬件架构及算法类型应用
- 真有这种操作,比特币、暴雪和下载盗版电影都应用了同一种算法
- otsu自适应阈值分割的算法描述和opencv实现,及其在肤色检测中的应用
- Java实现全排列、组合算法