数组的学习及常用的简易排序方法(冒泡排序、选择排序)

学习排序的方法的时候是紧跟在数组的学习之后的,所以要学会排序的逻辑原理,对于数组的基本的理解是必不可少的。

1.数组

    首先数组的定义方式

   1.1 动态定义数组      

           动态创建数组就是为数组开辟连续的存储空间,并且会为数组中的每一个元素赋默认值

          创建格式:  

                    数据类型 [ ]  数组名称  =  new 数据类型[数组长度]   

          例如:想要创建一个能够存储10个int数据的数组

                      int [ ] arr = new int [10]

1.2 静态定义数组

         静态创建数组就是在创建数组时,给出数组中要存储的内容,系统会自动的为数组分配长度

        创建格式:

                 数据类型  [ ] 数组名称 = new 数据类型  [ ] {元素1,元素2,元素3,元素4,……,元素n}

                 元素与元素之间用逗号隔开

        简写格式:

                 数据类型   [ ]  数组名称 = {元素1,元素2,元素3,元素4,……,元素n}  

注意:静态初始化的简写格式只可以写在同一行,而不能先声明然后再指向

1.3 数组中常见的报错异常

/* 空指针异常
                Exception in thread "main" java.lang.NullPointerException
            at Demo_Array_03.main(Demo_Array_03.java:17)

原因:这是由于该数组为null,而又访问该数组中的该角标的元素时就会产生错误;

例如:

在左侧中的数组arr为null,而输出语句中再次访问为null的数组元素,则会报出空指针异常。

/* 角标越界异常
            Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
        at Demo_Array_03.main(Demo_Array_03.java:25)

例如:

原因:定义的数组长度为5,但是数组的角标是从0开始计算,因此正确的跳出循环的条件应该为i<arr.length

2.常用简易排序方法(冒泡排序、选择排序)

      2.1 冒泡排序

      冒泡排序顾名思义,类似于水底的气泡向水面浮出,逐渐变大

      原理:两个数之间两两比较,将较大的数放在右侧,以此类推,第一次循环完毕时,最大的数就会排在数组的最右侧,直到整个数组循环完毕,则整个数组是按照由小到大,如图所示:

   每次循环结束以后,就会有一个较大的数排到数组最右侧

部分代码及运行截图:

2.2 选择排序

    选择一个初始位置,拿这个位置上的值不断和其他位置的值进行比较,将值最小的元素交换至左侧
    每一轮比较的次数 比上一轮都少一次
    经过第一轮的比较 最小值 先出现在左侧
   以此类推

   原理如图所示:

部分代码和运行截图:

猜你喜欢

转载自blog.csdn.net/weixin_42386014/article/details/81114865