数组、冒泡排序法
数组
1.定义
- 数组是相同类型数据的有序集合
- 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成
- 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们
2.初始化
public static void main(String[] args) {
//静态初始化
int[] array = {1,5,12,33,11};
//动态初始化 包含了默认初始化 比如:int类型在未进行赋值时,默认就是0,double是0.0
int[] array2 = new int[10];
}
3.内存分析
数组声明时,在栈中会先压入一个array,在new操作创建数组时,堆中开辟一个数组长度的空间,赋默认值(如int:0)
4.多维数组
/**
* 二维数组 (数组中的每个元素依然是一个数组)
*/
public class ArrayDemo2 {
public static void main(String[] args) {
int[][] arrays = {{1,2},{2,3},{3,4},{5,6,7,8}};
System.out.println(arrays[0][0]);
for (int i = 0; i < arrays[3].length; i++) {
System.out.println(arrays[3][i]);
}
}
}
5.Arrays工具类
/**
* Arrays工具类
*/
public class ArraysDemo3 {
public static void main(String[] args) {
int[] arrays= {1,2,222,3213,111,99,10212,9};
System.out.println(arrays);
System.out.println(Arrays.toString(arrays));
Arrays.sort(arrays);
System.out.println(Arrays.toString(arrays));
}
}
6.冒泡排序法
/**
* 冒泡排序法
* 1.比较数组中两个相邻位置的元素,如果第一个数字比第二个数字大,我们就交换他们的位置
* 2.每一次比较都会产生一个最大或最小的数字
* 3.下一轮则可以少一轮排序
* 4.依次循环
*/
public class ArrayDemo4 {
public static void main(String[] args) {
int[] arrays= {1,2,222,3213,111,99,10212,9};
//临时变量
int temp = 0;
for(int i=0;i<arrays.length-1;i++){
//外层循环,表示比较的轮数
for (int j = 0; j < arrays.length-1-i; j++) {
//内层循环,比较判断,调换数字位置,由于每轮会产生一个最大,或最小值,比较的次数依次递减
if(arrays[j+1] < arrays[j]){
temp = arrays[j];
arrays[j] = arrays[j+1];
arrays[j+1] = temp;
}
}
}
System.out.println(Arrays.toString(arrays));
}
}
7.稀疏数组
图中的稀疏数组,为6行8列,其中有效值为8个,第一个有效值在第0行,第三列,数值为22
狂神说视频链接 : 51~59