首页 > 代码库 > java基础数组(带基础排序法)
java基础数组(带基础排序法)
数组是一种数据结构,用来储存同一类型值的集合
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基础数组(带基础排序法)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。