public static void macNum(int[] arry){
for(int i = 0; i < arry.length - 1; i++){
for(int j = 0; j < arry.length - 1 - i; j++){
int maxJ = Integer.valueOf(String.valueOf(arry[j]) + String.valueOf(arry[j+1]));
int maxJPlus1 = Integer.valueOf(String.valueOf(arry[j+1]) + String.valueOf(arry[j]));
if(maxJ < maxJPlus1){
int temp = arry[j+1];
arry[j+1] = arry[j];
arry[j] = temp;
}
}
}
StringBuffer result = new StringBuffer();
for (int i = 0; i < arry.length; i++){
result.append(arry[i]);
}
System.out.println(result.toString());
}
这道题一旦陷入常规思路会发现越想越复杂。
用了一个变种的冒泡法, 如果两个数比如 11,33 拼凑的结果是1133和3311, 3311比较大,所以33排前面,这样只需两两比较用冒泡发排序即可得到正确的数组序列。