想把一个数组按照其数值大小分类,相同的数值的为一类~~同时不改变原来数组的顺序~哪位有比较好的算法吗

解决方案 »

  1.   

    public class Test {
      public static void main(String[] args) {
        int[] a={5,4,5,6,3,2,6,5};
        for(int i=0;i<a.length-1;i++)
        {
          for(int j=i+1;j<a.length;j++)
          {
            if(a[i]==a[j])
            {
              int temp;
              temp=a[++i];
              a[i]=a[j];
              for(int n=j;n>i;n--)
              {
                if(n==i+1)
                  a[n]=temp;
                else
                  a[n]=a[n-1];          }
            }
          }    }
        for(int i=0;i<a.length;i++)
        {
          System.out.print(a[i]+" ");
        }
      }
    }
    运行结果为:5 5 5 4 6 6 3 2