日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java获取数组最大最小值

發布時間:2024/1/23 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java获取数组最大最小值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用java獲取數組最大最小值,可以采用兩種方法。一種是對數組排序,排序后的數組第一位和最后一位即為最小值和最大值。另外一種方法是假定第一個數為最大或最小值,與其余數依次比較,遍歷數組后即可得到最大或最小值。

第一種方法:使用java.util.Arrays工具對數組排序。

int[] arr = new int[] {2,5,1,9,8,6,4}; Arrays.sort(arr); Min = arr[0] Max = arr[arr.length - 1]);

第二種方法:

獲取最大值

public static int getMax(int[] arr) {int max = arr[0];for(int i = 1;i < arr.length; i++) {if (max < arr[i]) {max = arr[i];}}return max;}

獲取最小值

public static int getMin(int[] arr) {int min= arr[0];for(int i = 1;i < arr.length; i++) {if (min> arr[i]) {min= arr[i];}}return min;}

兩種方法的優劣:第一種方法由于事先對數組排序,排序后的數組可以同時獲取最大最小值,由于使用了java數組工具,代碼量更少。第二種方法更為直接,計算量更小,最大值和最小值的計算代碼簡單,只需要改動循環內的判斷符號。兩種方法各有優劣,當數組較小且需要同時獲取最大最小值時,第一種方法更好。當數組較大時,使用第二種方法顯然可以減少計算量,有更好的響應速度。

測試:使用隨機數生成一個大小為10000000的數組,通過獲取數組最大值來比較兩種方法的計算耗時。

public static void main(String[] args) {//生成大小為10000000的隨機數組int length = 10000000;int[] arr = new int[length];Random random = new Random();for (int i = 0; i < length; i++) {arr[i] = random.nextInt(length);}//第一種方法long time1 = System.nanoTime();Arrays.sort(arr);System.out.println("最大值:" + arr[arr.length - 1]);long time2 = System.nanoTime();System.out.println("用時:" + (time2 - time1) + "納秒");//第二種方法int max = getMax(arr);System.out.println("最大值:" + max);long time3 = System.nanoTime();System.out.println("用時:" + (time3 - time2) + "納秒");}

運行結果:

對同一個數組進行計算。第一種方法計算需要消耗1331255400納秒,也就是1.3秒左右。第二種方法耗時9589100納秒,也就是9.5毫秒。兩者速度相差也是非常大的,所以計算大型數組最大最小值還是推薦使用更為高效的第二種方法。

總結

以上是生活随笔為你收集整理的java获取数组最大最小值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。