qwerdfs

 java 数组排序,选出其中的最大值或者最小值,我大概有3种方法

        @Test
    public void a(){
     long  start=System.currentTimeMillis();
     long[] arr=new long[9999999];
     Random ran=new Random();
     if(long i=0;i<9999999;i++){
         arr[(int) i]=ran.nextLong();
     }
     long a=0;
     long min=arr[0];
     for( long l:arr){
         min = min>l?l:min ;
     }
     for(long i=0;i<arr.length-1;i++){
         if(arr[(int) i]<arr[(int) (i+1)]){
             a=arr[(int) (i+1)];
             arr[(int) (i+1)]=arr[(int) i];
             arr[(int) i]=a;
         }
     }
     Arrays.sort(arr);
     long end=System.currentTimeMillis();
     System.out.println(end-start);
     System.out.println(end);
     System.out.println(arr[arr.length-1]);
    }

  其中发现,如果是规则的数组,{0,1,2,3}这些类似的Arrays.sort跟for循环遍历用时最短 ,如果是不规则的数组,推荐别用Arrays.sort,用时最长,非常浪费资源,其中,for遍历用时比if循环会用时短一些,可以根据情况选择。 如果数组长度小,其实使用区别不是很大,但极少成多,慢慢积累是好的. ps:还有一种叫做旋转数组的方法,但是自己去研究 发现数组是{2,1,5,1,2}等类似的,不……

分类:

技术点:

相关文章: