您的位置:首页 > 其它

输入几个正整数,求怎么组合这几个正整数的值最大(快排+比较器)

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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: