那么麻烦干什么。数组排序用Static方法,Array.sort(数组)

解决方案 »

  1.   

    要给数组乃至一组元素排序,方法可谓是n多。楼上的说的也是一个很方便的方法,因为Java把这些排序啊什么的常用数组功能都给集成了。不过应该是 Arrays.sort(int [] a) 而不是 Array.sort(int [] a)另外我没仔细看你的代码,(呵呵,比较讨厌看代码,这不最近还要看别人的project没办法)。你的错误是不是ArrayIndexOutOfBoundsException??如果是,那么你的for(i=0;i<=str.length; i++)每处都有错误,应该是for(i=0;i<str.length; i++)
    计数不要计错了,这是常见错误。另外你的排序方法算法不够先进,嗬嗬,自己去看看排序方面的算法吧。
      

  2.   

    你用bluedream2003(蓝梦) ( ) 讲的方法,还好用,我挺喜欢这个的。
      

  3.   

    标准冒泡法:    int i,j,temp;    for(i=0;i<str.length;i++){
          for(j=i+1;j<str.length;j++){
            if(str[i]>str[j]){
              temp=str[j];
              str[j]=str[i];
              str[i]=temp;
            }
          }
        }    for(i=0;i<str.length;i++){
          System.out.println(str[i]);
        }
      

  4.   

    问题就出在了抛出的异常java.lang.ArrayIndexOutOfBoundsException: 3主要是: for(i=0;i<=str.length; i++) 改为for(i=0;i<str.length; i++)for(j=i;j<=str.length;j++); 一句后边的";"是干吗的?
    改为:for(j=i;j<str.length;j++)
    在你的算法的基础上,进行改写:
    import java.util.*;
    import java.io.*;
    public class ChoiceSort
    {
        public static void main(String  args[])
        {
              int i,j,min;
              int[] str={31,89,16};
              try{
                      for(i=0;i<str.length; i++)
                     {                       min=i;
                           for(j=i;j<str.length;j++);
                           {
                                if(str[min]>str[j])
                                {
                                     int zh=str[j];
                                     str[j]=str[min];
                                     str[min]=zh;
                                     min=j;
                                }
                           }
                      }
               }catch(ArrayIndexOutOfBoundsException e){
                            e.printStackTrace(System.out);
                       }
               for(i=0;i<str.length;i++)
               System.out.print(str[i]+" ");
         }
    }
      

  5.   

    import java.util.*;
    import java.io.*;
    public class ChoiceSort
    {  
        public static void main(String  args[])
        {
              int i,j,min;
              int []str={31,89,16};
              try{
                      for(i=0;i<str.length; i++)
                     { 
                          
                           min=i;
                           for(j=i;j<str.length;j++);
                           {
                                if(str[min]>str[j])
                                {
                                     int zh=str[j];
                                     str[j]=str[min];
                                     str[min]=zh;
                                     min=j;
                                }
                           }
                      }
               }catch(ArrayIndexOutOfBoundsException e){ 
                             System.out.println(e);
                       }
               for(i=0;i<str.length;i++)
               System.out.print(str[i]+" ");
         } 
    }    同样
      

  6.   

    for(j=i;j<str.length;j++);
                           {
                                if(str[min]>str[j])
                                {
                                     int zh=str[j];
                                     str[j]=str[min];
                                     str[min]=zh;
                                     min=j;那个for循环为什么带分号?????
      

  7.   

    把那个for循环的分号去掉就可以了!