输入几个正整数,求怎么组合这几个正整数的值最大(快排+比较器)
2016-09-22 21:06
369 查看
//2
//12 123
//4
//7 13 4 246
//12312
//7424613
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] arr=new int
;
for(int i=0;i<n;i++){
arr[i]=in.nextInt();
}
quikSort(arr,0,arr.length-1);
for(int i=n-1;i>=0;i--){
System.out.print(arr[i]);
}
System.out.println();
}
private static void quikSort(int[] arr,int s,int e) {
if(s>=e){
return;
}
int p=s;
int q=e;
int temp=arr[s];
while(p<q){
while(p<q&&Comparator(arr[q],temp)>=0){
q--;
}
arr[p]=arr[q];
while(p<q&&Comparator(arr[p],temp)<=0){
p++;
}
arr[p]=temp;
}
quikSort(arr,s,p-1);
quikSort(arr,p+1,e);
}
private static int Comparator(int i, int temp) {
String s1=Integer.toString(i);
String s2=Integer.toString(temp);
int ss1=Integer.parseInt(s1+s2);
int ss2=Integer.parseInt(s2+s1);
if(ss1>ss2) return 1;
if(ss1<ss2) return -1;
return 0;
}
}
//12 123
//4
//7 13 4 246
//12312
//7424613
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] arr=new int
;
for(int i=0;i<n;i++){
arr[i]=in.nextInt();
}
quikSort(arr,0,arr.length-1);
for(int i=n-1;i>=0;i--){
System.out.print(arr[i]);
}
System.out.println();
}
private static void quikSort(int[] arr,int s,int e) {
if(s>=e){
return;
}
int p=s;
int q=e;
int temp=arr[s];
while(p<q){
while(p<q&&Comparator(arr[q],temp)>=0){
q--;
}
arr[p]=arr[q];
while(p<q&&Comparator(arr[p],temp)<=0){
p++;
}
arr[p]=temp;
}
quikSort(arr,s,p-1);
quikSort(arr,p+1,e);
}
private static int Comparator(int i, int temp) {
String s1=Integer.toString(i);
String s2=Integer.toString(temp);
int ss1=Integer.parseInt(s1+s2);
int ss2=Integer.parseInt(s2+s1);
if(ss1>ss2) return 1;
if(ss1<ss2) return -1;
return 0;
}
}
相关文章推荐
- 20160916------JSP基本语法
- [URAL1057]Amount of Degrees(数位dp)
- 重要的热键[tab],[ctrl]-c,[ctrl]-d
- loopback学习(4)--将api连接至数据源
- Android知识架构 · 电话面试 · Java的编程思想
- Android 6.0 Reboot 流程源代码分析
- Android的性能优化
- c# 安全队列
- cocos2d-x 3.0 动画与触摸事件总结
- 40. Combination Sum II
- Docker学习笔记 — Docker与OpenStack集成
- linux 下安装memcached
- 文章标题 HDU 5112- A Curious Matt
- throw抛出异常
- 时钟八:用IIC和EEPROM实现时钟
- JAVA 学习模块十八: 多线程
- lwip_sendto函数详解
- 如何学习KALI
- Raising Bacteria 细菌繁殖
- C# 二分法查找和排序