第三節 java 數組(循環遍歷、獲取數組的最值(最大值和最小值)、選擇排序、冒泡排序、練習控制台輸出大寫的A)


獲取數組的最值(最大值和最小值)

思路: 1、獲取最值需要進行比較,每一次比較都會有一個較大的值,因為該 值不確定,需要一個變量進行臨儲

2、讓數組中的每一個元素都和這個變量中的值進行比較,如果大於了 變量中的值,就用該變量記錄較大值。

3、當所有的元素都比較完成,那么該變量中存儲的就是數組中最大值

例子://最大值

int arr[] = {1,2,3,4,5,};

int max = arr[0];

  for(int a=0;a<arr.length;a++){

{if(arr[a])>arr[max]{

mac=arr[a];}

}

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 ;
}
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM