Java基础 数组续

数组常见异常

        1.NullPointerException 空指针异常

原因:引用类型变量没有指向任何对象,而访问了对象的属性或者是调用了对象的方法。

public static void main(String[] args){
    int[] obj=null;
    System.out.println(obj.length);
}

        2. ArrayIndexOutOfBoundsException 索引值越界 原因:访问了不存在的索引值。数组角标越界异常:,注意:数组的角标从0开始。

int[] arr=new int[]{1,2,3,4,5};
for(int i=0;i<=arr.length;i++)
System.out.println(arr[i]);

        冒泡排序 

现有一个小数数组{12.9,53.54,75.0,99.1,3.14}。请编写代码,找出数组中的最小值并打印

public class Test1 {
public static void main(String[] args) {
        double[] arr = { 12.9, 53.54, 75.0, 99.1, 3.14 };
        for (int k = 1; k < arr.length; k++) {
            for (int i = 0; i < arr.length - k; i++) {
                if (arr[i] > arr[i + 1]) {
                    double tmp = arr[i];
                    arr[i] = arr[i + 1];
                    arr[i + 1] = tmp;
                    }
            }
        }
        for (double tmp : arr) {
        System.out.print(tmp + "\t");
        }
    }
}

Java常见排序算法有冒泡、插入、选择、快速、希尔、归并和堆7种

冒泡排序O(n**2)稳定

快速排序O(NlogN)不稳定

随机生成20个整数,使用冒泡排序,然后打印输出

public class Test2 {
public static void main(String[] args) {
    int[] arr = new int[20];
    for(int i=0;i<arr.length;i++) {
        int r=(int)(Math.random()*100); //生成0-100的随机整数,含0不含100
        arr[i]=r;
    }
    for(int temp:arr) //foreach结构,简化的方法遍历数组中的所有元素
        System.out.print(temp+" ");
        System.out.println();
        for(int i=1;i<arr.length;i++) { //控制循环次数
            for(int k=0;k<arr.length-i;k++) { //相邻比较
                if(arr[k]>arr[k+1]) {
                int tmp=arr[k]; //交换位置
                arr[k]=arr[k+1];
                arr[k+1]=tmp;
                }    
            }
        }
for(int temp:arr)
System.out.print(temp+" ");
    }
}

查找算法

    int[] arr = new int[21];
    for(int i=1;i<arr.length;i++) {
        int r=(int)(Math.random()*100);
        arr[i]=r;
    }
    arr[0]=33;
    for(int temp:arr)
        System.out.print(temp+" ");
    System.out.println();

数组逆序

static void reverse(int[] arr){
    int start=0;
    int end=arr.length-1;
    while(start<end){
        int tmp=arr[start];
        arr[start]=arr[end];
        arr[end]=tmp;
        start++;
        end--;
    }
}

多维数组

二维数组:实质就是存储是一维数组。

数组定义: 数组类型[][] 数组名 = new 数组类型[一维数组的个数][每一个一维数组中元素的个数];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值