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}等类似的,不……