第六章 数组、排序和查找

2023-12-21 18:17:02

一、数组(P156)

1. 数组介绍

数组可以存放多个同一类型的数据。数组也是一种数据类型,是引用类型。
即:数(数据)组(一组)就是一组数据。

2. 数组的使用

2.1 使用方式1:动态初始化

数组的定义:
数据类型[] 数组名 = new 数据类型[大小];

public class Demo {
    public static void main(String[] args) {
        int[] a = new int[5];
    }
}

数组的引用(使用/访问/获取数组元素):
数组名[下标/索引/index]

public class Demo {
    public static void main(String[] args) {
        int[] a = new int[5];
        int b = a[0];
    }
}

2.2 使用方式2:动态初始化

声明数组,再创建数组。

public class Demo {
    public static void main(String[] args) {
        int[] a;
        a = new int[5];
    }
}

2.3 使用方式3:静态初始化

数组的定义:
数据类型 数组名[] = {元素值,元素值…}

public class Demo {
    public static void main(String[] args) {
        int[] a = {1, 2, 3};
    }
}

3. 数组使用注意事项和细节

(1)数组是多个相同类型数据的组合,实现对这些数据的统一管理。
(2)数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用。
(3)数组创建后,如果没有赋值,有默认值
int 0,short 0,byte 0,long 0,float 0.0,double 0.0,char \u0000,boolean false,String null
(4)数组的下标是 从 0 开始的
(5)数组下标必须在指定范围内使用,否则报:下标越界异常。
(6)数组属引用类型,数组型数据是对象(object)。

二、排序(P172)

排序是将多个数据,依指定的顺序进行排列的过程。

排序的分类:
(1)内部排序
指将需要处理的所有数据都加载到内部存储器中进行排序。包括(交换式排序法、选择
式排序法和插入式排序法)
(2)外部排序法:
数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。包括(合并排序法
和直接合并排序法)

三、冒泡排序法

冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从后向前(从下标较大的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。

思路:
在这里插入图片描述

public class Demo {
    public static void main(String[] args) {
        int[] array = {24, 69, 80, 57, 13,100,-1};
 
        int max;
        for (int i = 0; i < array.length - 1; i++) {
            for (int j = 0; j < array.length - 1 - i; j++) {
                if (array[j] > array[j + 1]) {
                    max = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = max;
                }
            }
        }
 
        System.out.println(Arrays.toString(array));
    }
}

四、二维数组(P176)

二维数组的元素是一维数组

public class Demo {
    public static void main(String[] args) {
        int[][] arr = {{0, 0, 0, 0, 0},
                {0, 0, 1, 0, 0},
                {0, 2, 0, 3, 0},
                {0, 0, 0, 0, 0}};
 
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j]);
            }
            System.out.println();
        }
    }
}

文章来源:https://blog.csdn.net/yirenyuan/article/details/135135110
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。