思路: 一、獲取最值須要進行比較,每一次比較都會有一個較大的值,由於該 值不肯定,須要一個變量進行臨儲。html
二、讓數組中的每個元素都和這個變量中的值進行比較,若是大於了 變量中的值,就用該變量記錄較大值。java
三、當全部的元素都比較完成,那麼該變量中存儲的就是數組中最大值api
例子://最大值數組
int arr[] = {1,2,3,4,5,};函數
int max = arr[0];spa
for(int a=0;a<arr.length;a++){code
{if(arr[a])>arr[max]{htm
mac=arr[a];}排序
}get
system.out.println("數組arr最大值爲:"+max);同理去最小值。
快捷上升排序: Arrays類中的sort()使用的是「通過調優的快速排序法」;
函數原型:static void sort(int[] a)
對指定的 int 型數組按數字升序進行排序。
static void sort(int[] a, int fromIndex, int toIndex)
對指定 int 型數組的指定範圍按數字升序進行排序。
import java.util.Arrays; public class ArraysSort_11 { public static void main(String args[]) { int[] a={1,4,-1,5,0}; Arrays.sort(a); //數組a[]的內容變爲{-1,0,1,4,5} for(int i=0;i<a.length;i++) System.out.print(a[i]+" "); } }
選擇排序
選擇排序:一開始默認角標爲0的數爲最小的數,依次和後面的數比較(最後一位數因爲已經與前面數進行了比較,全部不用再次比較:length-1;),發現小的記錄下標,最
後把角標爲0的數和最後的角標數交換,第二次從角標爲1的數開始遍歷;
int arr[] = {1,2,3,4,5}; for(int i = 0;i < arr.length-1;i++){ //最後一位數因爲已經與前面數進行了比較,全部不用再次比較:length-1; for(int a = i+1;a<arr.length;a++){ //a=i+1;從角標1開始與i=0的值進行大小比較,共比較4次,得出a<arr.length; if(arr[i] > arr[a]){ int temp = arr[a]; arr[a] = arr[i]; arr[i] = temp; } } } System.out.print("{"); for(int b = 0;b < arr.length;b++){ if(b != arr.length-1){ System.out.print(arr[b]+","); }else{ System.out.print(arr[b]+"}"); } }
冒泡排序:是經過兩兩比較,把比較的獲得的最大值或最小值放到數組的最後面,而後依次循環 第一次取到最大值或者最小值,進入第二次循環,第二次循環也是兩兩比較,由於第 一次循環的時候咱們的獲得的值已經和前面的值進行了比較判斷,因此第二次循環的 時候就不須要再把前一次比較獲得的值再進行一個比較,因此咱們的第二個for循環裏 面會有一個.length-i-1; int[] arr = {3,2,4,7,6,5,9,8,10,20,1}; for(int a = 0;a<arr.length-1;a++){ for(int b = 0;b<arr.length-a-1;b++){ if(arr[b]>arr[b+1]){ int temp = arr.[b]; arr.[b] = arr.[b+1]; arr.[b+1] = temp ; } }