数组、冒泡排序法

数组

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

排序算法
pyhton详解
java详解

7.稀疏数组

​ 图中的稀疏数组,为6行8列,其中有效值为8个,第一个有效值在第0行,第三列,数值为22

狂神说视频链接 : 51~59

posted @ 2022-07-26 22:10  梁小白123  阅读(64)  评论(0)    收藏  举报