JAVA学习笔记第四天

-----------android培训java培训、java学习型技术博客、期待与您交流!------------


操作时访问到数组中不存在的脚标时ArrayIndexOutOfBoundException

当引用没有任何指向值为NULL的情况,该引用还在用于操作实体,空指针异常。NullPointerException

常用数组操作。

遍历

public classLeanr {

 

    public static void main(String args[]) {

        int[]x = { 3, 2, 3, 6, 3, 8,3, 63, 6 };

        for (inti = 0;i < x.length;i++) {

            System.out.print(x[i]+"\n");

        }

 

    }

}

获取最值

    public static int getMax(int[]arr) {

        int max = arr[0];

        for (inti = 0;i < arr.length;i++) {

            if (arr[i] >max)

                max = arr[i];

        }

        returnmax;

    }

    public static int getMin(int[]arr) {

        int min = arr[0];

        for (inti = 0;i < arr.length;i++) {

            if (arr[i] >min)

                min = arr[i];

        }

        returnmin;

    }

 

如int max=0比较时须将max设为脚标值

选择排序   

    public static void selectSort(int[]arr) {

        for (inti = 0;i < arr.length;i++) {

            for (intj =i + 1; j < arr.length;j++) {

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

                    arr[i] =arr[i] ^arr[j];

                    arr[j] =arr[i] ^arr[j];

                    arr[i] =arr[i] ^arr[j];

                }

            }

        }

    }

冒泡排序

    public static void bubbleSort(int[]arr) {

        for (inti = 0;i < arr.length;i++) {//for(int i = arr.length-1;x 0x--)

            for (intj = 0;j < arr.length -i - 1; j++) {//for(int y=0;y<x:y++)

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

                    arr[j] =arr[j] ^arr[j + 1];

                    arr[j + 1] =arr[j] ^arr[j + 1];

                    arr[j] =arr[j] ^arr[j + 1];

                }

            }

        }

    }

折半查找

    public static int halfSearch(int[]arr,intkey) {

        int min, max, mid;

        min = 0;

        max = arr.length - 1;

        mid = (max +min) / 2;

        while (arr[mid] !=key) {

            if (key >arr[mid])

                min = mid + 1;

            else if (key < arr[mid])

                max = mid - 1;

            if (min >max)

                return -1;

            mid = (max +min) / 2;

        }

        returnmid;

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值