数组

数组


2017 - 11 - 09


什么是数组?
—— 容器 : 存储长度确的相同类型数据。
==》
概念: 在内存中开辟的一个长度确定空间,按照下角标储存相同数据类型的元素。
==》
声明方式:
— 动态声明:
【】 数据类型 [ ] 数组名 = new 数据类型 [ 数组长度] ;

int [] arr = new int [4];

— 静态声明:
【】 数据类型 [ ] 数组名 = new 数据类型 [ ] {元素 1 ,元素2 ,…} ;

int [] arr01 = new int [] {1,4,5,2,8,4,3};

— 简便声明 :
【】 数据类型 [ ] 数组名 = {元素 1 ,元素2 ,…};

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

备注:

1 、new 关键字: 数组声明中,表示在内存中开辟一块空间。
2、数组长度一旦声明不可改变。
3 、数组只能存放同类型数据。

数组常见异常:
ArrayIndexOutOfBoundsException 越界异常


数组常见的方法
一 、遍历 : 即按照下角标访问数组内所有元素。
例:使用 for 循环遍历

    public static void print(int [] arr) {
        System.out.print("【 ");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + ", ");
            if (i == arr.length - 1) {
                System.out.println( arr[i] + " 】");
            }
        }
        System.out.println();
    }

二 、 冒泡排序

原理:(升序为例)
—— 相邻两个元素比较,较大者居后,依次类推,可得最大值排最末;
——重复上述操作,直到剩下第一位。

    //冒泡排序
    public static void popSort(int [] arr) {
        // 外层控制比较轮数
        for (int i = 0; i < arr.length; i++) {
            //内层控制每轮比较次数 
            for (int j = 0; j < arr.length -1; j++) {
                // 判断是否交换位置
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp ; 
                }
            }
        }
    }

三、选择排序

原理: (升序为例)
第一位元素和后面所有元素比较,取最小值放第一位,
第二位元素和后面所有元素比较,也取最小值放第二位,
依次类推。

    public static void xSort(int [] arr) {
        //控制最小值取多少轮
        for (int i = 0; i < arr.length - 1; i++) {
            //控制每轮比较次数
            for (int j = i + 1; j < arr.length; j++) {
                // 换位条件
                if (arr[i]> arr[j]) {
                    //temp : 临时变量
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp ;
                }
            }
        }
    }

获得最值
例: 获得最大值

思路:
— 假定第一位为最大值
— 最大值依次与其他元素比较 ,如果较小,则其他元素值赋予最大值。

    public static int getMax(int [] arr) {
        int max = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (max < arr[i]) {
                max = arr[i];
            }
        }
        return max ;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值