1. 程式人生 > >java基礎數組(帶基礎排序法)

java基礎數組(帶基礎排序法)

當前位置 組類型 維數 can color int() i++ 整型 二維

數組是一種數據結構,用來儲存同一類型值的集合

1.數組需要先聲明數組類型(即儲存的數據類型)如:int [] a; 其中int是數組類型[]代表一維數組a代表數組名。

2.創建數組a: int [] a = new int[100]; 表明創建一個儲存100 個整型數的數組沒有具體值時默認為0。

也可以直接創建有具體內容的數組: int [] a = {1, 2, 3, 4, 5, 6, 7, 8, 9} ;

boolean數組的元素會初始化為false;

對象數組的元素則初始化為一個特殊值null,這表示這些元素還未存放任何對象。(比如:for(int i=0;i<100;i++)names[i]="";

3.多維數組: int [][] a = new int[10][10]; 表示創建一個10*10的二維數組,以此類推。

例子:利用二維數組生成楊輝三角:

 1 package Demo1;
 2 import java.util.Scanner;
 3 
 4 public class Demo1 {
 5     public static void main(String[] args) {
 6     System.out.println("請輸楊輝三角層數");
 7     // 8 9 行是獲取輸入數據輸入語句
 8     Scanner sc = new Scanner(System.in);
9 int row = sc.nextInt(); 10 sc.close(); 11 int [][] m = new int [row][row]; 12 for (int i = 0; i < row; i++) { 13 for (int k = 0; k < 8 - i; k++) { 14 15 System.out.print(" "); 16 } // 此for語句體是打印每行的空格數
17 18 for (int j = 0; j < i + 1; j++) { 19 if (j == 0 || i == j) { 20 m[i][j] = 1; // 確定楊輝三角數字1的位置 21 } else { 22 m[i][j] = m[i - 1][j] + m[i - 1][j - 1]; 23 // 找出數組具體數據聯系 24 } 25 System.out.printf("%2d ",m[i][j]); 26 } 27 System.out.println(); // 空行 28 } 29 }

冒泡排序法:

package Demo1; 

import java.util.Arrays;

public class Test1 { 
    
    public static void main(String[] args) {
                int [] arr = {5, 8, 1, 7, 4, 9, 6, 3, 2};
                boolean flag = false;
//           冒泡總次數                                       - 1 非必須
        for (int i = 0; ! flag && i < arr.length - 1; i++) {

            flag = true;
        for (int j = 0; j < arr.length - 1 - i; j++) {
            // - 1 必須防止越界 減 i 提高效率
            if (arr[j] > arr[j + 1]) {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
                // 確定無序
                flag = false;
            }
        }
    }   
         System.out.println(Arrays.toString(arr));
     }
}

選擇排序法:

 1                   int [] arr = {5, 8, 1, 7, 4, 9, 6, 3, 2};
 2                   for (int i = 0; i < arr.length - 1; i++) {
 3             // 假定當前i地址是樣本最小值的位置
 4             int num = i;
 5             for (int j = i + 1; j < arr.length;j++) {
 6                 // 如果j位置元素比當前位置元素小,更新最小位置
 7                 if (arr[num] > arr[j]) {
 8                     num = j;
 9                 }
10             }
11             // 把當前最小位置元素與無序區第一個元素交換值
12             int temp = arr[i];
13             arr[i] = arr[num];
14             arr[num] = temp;
15         }
16         System.out.println(Arrays.toString(arr));

插入排序法:

 1         for (int i = 1; i < arr.length; i++) {
 2             // j 當前要向前插入的位置
 3             int j = i;
 4             // 把要向 前插入的元素保存在temp裏
 5             int temp = arr[j];
 6             // temp 小於當前位置前一個元素   
 7             while (j > 0 && temp < arr[j - 1]) {  // 利用短路與跳過越界
 8                 // 把前一個元素保存當前位置
 9                 arr[j] = arr[j - 1];
10                 // 當前位置前移
11                 j--;
12             }
13             // 把需要的數據插入的正確位置上
14             arr[j] = temp;
15         
16         }
17         System.out.println(Arrays.toString(arr));

java基礎數組(帶基礎排序法)