java基礎數組(帶基礎排序法)
阿新 • • 發佈:2017-07-17
當前位置 組類型 維數 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基礎數組(帶基礎排序法)