int a[] = {543,57,541,36,48,1221,25,1},让你排成这样的int a[] = {57,543,541,48,36,25,1221,1}。规则是降序,先比较每个数的第一位,如果第一位相同再比较第二位,以此类推。写算法,怎么写?算法排序java数组

解决方案 »

  1.   


     int[] intArray = {543,57,541,36,48,1221,25,1};
     String[] strArray = new String[intArray.length];
     for (int index = 0; index < intArray.length; ++index)
     {
         strArray[index] = String.valueOf(intArray[index]);
     }
     
     
     Arrays.sort(strArray);
     ArrayUtils.reverse(strArray);
     for (int i = 0; i < strArray.length; i++)
    {
     System.out.println(strArray[i]);
    }
      

  2.   

    int a[] = {543,57,541,36,48,1221,25,1};
    String []str =new String [a.length];
    for (int i=0;i<a.length ;i++)
    {
    str[i] = String.valueOf(a[i]);
    }
    for (int i=0;i<str.length;i++)
    {
    System.out.print(str[i]+"\t");
    }
    System.out.print("\n"+"sort as Integer:"+"\n");
    Arrays.sort(a);
    for (int i=0;i<a.length ;i++)
    {
    System.out.print(a[i]+"\t");
    }
    Arrays.sort(str);//默认升序
    System.out.print("\n"+"sort as string asc:"+"\n");
    for (int i=0;i<str.length;i++)
    {
    System.out.print(str[i]+"\t");
    }
    //降序
    for (int j=0;j<str.length/2;j++)
    {
    String temp = null;
    temp = str[j];
    str[j] = str[str.length-1-j];
    str[str.length-1-j] = temp;
    }
    System.out.print("\n"+"sort as string desc:"+"\n");
    for (int i=0;i<str.length;i++)
    {
    System.out.print(str[i]+"\t");
    }
      

  3.   

    ArrayUtils.reverse(strArray);直接颠倒过来就行了 
      

  4.   

    import java.util.Arrays;
    import java.util.Comparator;
    public class sdfsd {
    public static void main(String[] args){
    int a[] = {57,543,541,48,36,25,1221,1};
    Integer[] newArray = new Integer[a.length];
    int i = 0;
    for (int value : a) {
        newArray[i++] = Integer.valueOf(value);
    }
    Comparator c=new Comparator<Integer>() { @Override
    public int compare(Integer o1, Integer o2) {
    // TODO Auto-generated method stub
    String a1=o1+"";
    String a2=o2+"";
    return -a1.compareTo(a2);
    }
    };
    Arrays.sort(newArray, c);
    System.out.println(Arrays.toString(newArray));
    }
    }