package com.wendyqun.question; import com.wendyqun.common.MyAnswer; /** * @Version 1.0.0 * 输入一个正整数数组,把数组里所有数字拼接起来排成一个数, * 打印能拼接出的所有数字的最小的一个。例如输入{3,32,321,4},则打印最小的数字是 * 3213234
* * 其实就是一次排序,只是比较大小的方式与数值比较有所不同 * 这里采用冒泡排序的方式 */ public class Pro33 { public static void f(int array[]){ for(int i=0;i<array.length-1;i++){ int big=0; for(int j=0;j<array.length-i;j++){ if(compare(String.valueOf(array[j]),String.valueOf(array[big]))>0){ big=j; } } if(big!=array.length-i-1){ int temp=array[big]; array[big]=array[array.length-i-1]; array[array.length-i-1]=temp; } } for(int a:array){ System.out.print(a+" "); } } public static int compare(String a, String b){ String left=a+b; String right=b+a; for(int i=0;i<left.length()-1;i++){ if(left.charAt(i)>right.charAt(i)){ return 1; }else if(left.charAt(i)<right.charAt(i)){ return -1; } } return 0; } public static void main(String args []){ int array[]=/*{23,345, 121,42,1}*/{3,32,321,4}; Pro33.f(array); } }