1. 考虑用冒泡排序来做
  2. 用每个数据(字符串)的ASCII码来比较
  3. 这时候会发现:
  • 9 71 7
  • 冒泡排序:9717
  • 正确答案应该:9771
  1. 考虑用前后两个数相互相反合并再作比较:771 717
  2. 用冒泡排序从大到小排序
  3. 代码:
public class Main{
    public static void main(String arg[]){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        String[] a=new String[n];
        for(int i=0;i<n;i++){
            a[i]=sc.next();
        }
        for(int i=0;i<n;i++){
            for(int j=n-1;j>i;j--){
                if((a[j]+a[j-1]).compareTo(a[j-1]+a[j])>0){
                    String str=a[j-1];
                    a[j-1]=a[j];
                    a[j]=str;
                }
            }
        }
        for(int i=0;i<n;i++){
            System.out.print(a[i]);
        }
    }
}