java数组,冒泡排序,选择排序

数组

  • 概念:一组连续的存储空间,存储多个相同类型的值。
  • 数组的创建

     语法: 数据类型 [] 数组名=new 数据类型[长度]; 如:int[] a=new int[5];

  • 数组的组成
  1. 数组中的每个“格子”被称为“数组的元素.
  2. 对元素访问分为:“赋值”、“取值”。
  3. 访问元素时:通过“下标”。(下标从0开始,依次+1,自动自增)
  4. 访问语法:数组名[下标] 存: a[0]=10;  取:a[0]
  5. 下标范围:0~数组长度-1,如果不在有效范围之内,会产生数组下标越界异常。
  6. 错误

  

  • 数组的遍历

概念:从头到尾,逐一对数组中的元素进行访问

数组名.length 动态获取数组长度

语法:

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

          变量名:代表数组中的每个元素

}

缺点:不能使用下标

  • 数组的创建语法

     A.先声明、再分配空间

数据类型[] 数组名;

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

B.声明并分配空间

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

C.声明并赋值(繁):

数据类型[] 数组名 = new 数据类型[]{value1,value2,value3,...};

D.声明并赋值(简):

数据类型[] 数组名 = {value1,value2,value3,...}; //显示初始化,注意:不可换行

  • 数组的内存

   

  • 数组的扩容
  1. 创建数组时,必须显示指定长度,并在创建之后不可更改长度
  2. 扩容思想

      创建大于原数组长度的新数组

将原数组中的元素依次复制到新数组中

  1. 数组的复制
  1. 循环将数组中的元素依次赋值给新数组
  2. System.arraycopy(原数组名,原数组起始位置,新数组名,新数组起始位置,长度);
  3. 数组类型=java.util.Arrrays.copyOf(原数组名,新数组的长度);//根据长度创建新数组,并将原数组中的元素复制给新数组
  • 数组类型参数

A.基本数据类型传参:值传递,一方改变,不影响另一方。

B.引用数据类型传参:值传递(地址值),一方改变,另一方改变。

九、可变长参数

概念:可接受多个同类型的实参,个数不限,使用方式与数组相同

语法:数据类型…  形参名  //必须定义在形参列表的最后,只能定义一个。

十.数组排序

相邻两个数值比较大小,互换位置。

口诀:记忆 外层循环length-1 内层循环length-i-1

public class TestBubble{

       public static void main(String [] args){

               int [] nums=new int []{1,3,2,7,5};

          //冒泡排序:相邻两个数值比较大小,互换位置。

         

         

          for(int i=0;i<nums.length-1;i++){//比较n-1

                 for(int j=0;j<nums.length-1-i;j++){

                 if(nums[j]>nums[j+1]){

                        int temp=nums[j];

                        nums[j]=nums[j+1];

                        nums[j+1]=temp;

                 }

                 }

          }

           System.out.println("遍历数组");

              for(int n:nums){

                     System.out.print(n+"\t");

              }

              System.out.println();

       }

}

选择排序:

原理:固定值与其他值依次比较大小,互换位置。

口诀:记忆 外层循环length-1 内层循环j=i+1;j<length;i++;

public class TestSelect{

       public static void main(String [] args){

              //选择排序 固定值与其他值依次比较大小,互换位置。

             

              int [] nums={4,3,5,2,1};

              for(int i=0;i<nums.length-1;i++){

              for(int j=i+1;j<nums.length;j++){

                     if(nums[i]>nums[j]){

                            int temp=nums[i];

                            nums[i]=nums[j];

                            nums[j]=temp;

                     }

              }

              }

              System.out.println("遍历数组");

              for(int n:nums){

                     System.out.print(n+"\t");

              }

              System.out.println();

       }

}

十一.

二维数组:

       1概念:一维数组中的一维数组,数组中的元素还是数组。

       2.高维数组中的每一个元素,保存了低维数组的地址。访问array[0]等价于在访问0x0000A111

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值