Javaday04(数组,冒泡、插入和选择排序)

一、数组

 

    数组是一组类型相同的数据的集合。

  1.特性

    Java数组是引用类型,但数组内可以装入基本数据类型,也可以装入引用数据类型。

    数组与类,接口,注解,枚举并列,是引用数据类型中的一种。

    Java中的数组一经定义以后就无法修改

    数组在内存中是连续分配的,所以读取速度快

    数组内有索引值,从0开始。

 2.数组的维数

      如果数组中的元素都是单个数据,那么称为一维数组。

    

 

 

       如果一个数组中元素是一维数组,那么称为二维数组。

    

 

 

   3.数组的声明

      数组元素类型[] 变量名称;   数组元素类型 变量名称[];

1 int[] arr;  
2 int arr[];   
3 String[] arr;
4 String arr[];

   4.初始化方式

        数组中的元素如果为基本数据类型,默认值:整形为0,浮点型为0.0,字符型为\u0000,布尔值为false 

             如果是引用数据类型,那么默认值为null

      第一种方式:数组元素类型[] 变量名称 = new 数组元素类型[数组长度];

      第二种方式:数组元素类型[] 变量名称 = new 数组元素类型{用逗号隔开元素的具体值};

      第三种方式:数组元素类型[] 变量名称 = {用逗号隔开元素的具体值};

         

 

 

       数组是引用类型,栈中arr中保存数组的首地址,指向堆中的数组的具体内容。

          

 

       在创建数组时,一定要明确数组的长度。数组初始化的同时,也初始化在内存中;  

   6.数组的遍历(增强for循环)

      for(数据类型 变量名:数组变量名){

        这里的变量名就是每一次循环从数组中去除的值。

      }

    

 

 

 二、排序

  1.选择排序

      选择排序的主要思想是:找到未排序列表中的最小元素,加入有序列表的末尾,直到无序列表为空。

      

     现在将数组分为有序和无序两个队列,在开始排序时,有序的数量为0,全部为无序队列。

 

 

      

    

    

 

 

    以此类推:

 

      

 

 

  2.冒泡排序

      

 

     交换的轮式是外层循环,比较的次数就是内层循环

    

 

 

    两层for循环,外层循环次数n-1,内层循环n-1-i,内层循环两两比较。

 

  3.插入排序

 

    

 

 

    选择排序和插入排序类似,将数组分为有序队列和无序队列,默认数组第一个为有序数组,其余为无序数组,从无序数组中选取第一个与有序数组中的值比较,插入到合适位置。

 

     

 

               

               

 

 三. 多维数组

   多维数组的声明:  数组元素类型[][] 变量名 = new 数组元素类型[一维长度][二维长度];

   内存分析:

          

1 // 等长二维数组
2 int[][] arr = new int[3][3];
3 
4 // 不等长二维数组
5 int[][] arr = new int[3][];
6 
7 arr[0] = new int[2];
8 arr[1] = new int[3];
9 arr[2] = new int[4];

 

 

 

 

 

 

     

 

posted @ 2020-08-01 15:19  大明湖畔的闰土  阅读(126)  评论(0编辑  收藏  举报