zoukankan      html  css  js  c++  java
  • 第六章、数组

    数组

    1. 数组

    1.1 基本概述

    数组分为:
        一维数组、二维数组、多维数组
     
    数组是相同数据类型的多个元素的容器。
    这些元素按线性顺序排列。所谓线性顺序是指除第一个元素外,每一个元素都有唯一的前驱元素;除最后一个元素外,每一个元素都有唯一的后继元素(“一个跟一个”)。
     
    一维数组本质就是一块连续的内存空间,可以在不同的存储单元记录不同的数据内容。
     
     
    数组名称:类似于变量的名称,用于记录连续内存空间中的首地址
    数组元素:主要指存放在数组内存空间中的数据内容。
    数组长度:主要指数组中元素的个数,通常使用  数组名.length的方式来获取
    数组下标:主要指数组元素的编号,从0开始一直到数组的长度-1.
    

    1.2 数组的声明方式

    语法格式
        数据类型[] 数组名称 = new 数据类型[数组长度];
     
        例如:
            int[] arr = new int[5];-表示声明一个长度为5个元素的类型为int的一维数组。
     
            int num = 5;  -表示声明一个初始值为5的int类型的变量num。
     
            int arr[] = new int[5]; - 不推荐使用这种方式去做
     
     
    注意事项
        1.当数组下标越界时候会在运行阶段产生:java.lang.ArrayIndexOutOfBoundsException: 5    数组下标越界
        2.只有在声明数组时[]中的数字代表数组的长度,否则一律代表数组元素的下标;
     
     
    数组的初始化
        数据类型[] 数组名称 = {初始值1,初始值2,初始值3,....}
     
            例如:
                int[] arr = {10,20,30,40,50};
                int[] arr1 = new int[]{10,20,30,40,50};
     
     
                int[] arr;
                arr = {1,5,8,10};
     
     
    数组的复制
        int[] arr = {1,3,5,7,9};
        int[] arr1 = new int[10];
     
        //System.arrayCopy(原数组,原数组要复制的起始位置,目标数组,起始位置,复制长度);
    

    1.3 数组的练习

    实现用户输出正整数中重复数字出现的次数并打印。
        例如:
                123456712345671
    

    1.4 冒泡排序

    原理:比较两个相邻的元素,将值大的元素交换至右端。
     
        int[] arr = {5,8,2,10,9};       //2 5 8 9 10
     
        第一趟排序:
     
                第一次排序:5和8比较,5不大于8,不交换       5,8,2,10,9
                第二次排序:8和2比较 ,8大于2,交换位置      5 2 8 10 9
                第三次排序  8和10比较,8不大于10 ,不交换位置 5 2 8 10 9
                第四次排序  10和9比较,10大于9,交换位置        5 2 8 9 10
     
        第二趟
            第一次排序:
                5和2比较,5大于2,交换位置  2 5 8 9 10
            第二趟总共进行了1次比较,  排序结果   2 5 8 9 10
     
     
    冒泡排序优点:
        每进行一躺排序,就会少比较一次因为每进行一躺排序都会找出一个较大的值。一定程序减少算法量
    

    2. 二维数组

    2.1 基本概念

    一维数组本质上就是一段连续的内存空间,用于存放多个类型相同的数据。
    二维数组本质就是由一维数组组成的数组,也就是说每个元素都是一个一位数组。
    

    2.2 声明方式

    语法格式
        数据类型[][] 变量名 = new 数据类型[m][n];
     
        m:表示这个二维数组由多个个一位数组
        n:表示每一个一维数组的元素个数
     
        比如:
            int[][] arr = new int[2][3]; - 表示声明一个具有2行3列的二维数组
     
     
        思考:
            arr代表什么?  arr[0]代表什么?  arr[0][0]代表什么?
     
            arr代表数组的名称,也就是用于记录该数组内存空间的首地址
            arr[0] 代表二维数组中的第一行,也就是一个一维数组
            arr[0][0] 代表二维数组中下标为0行0列的元素,也就是第一个一个维数组中的第一个元素。
     
     
            arr.length 代表二维数组的大小,也就是二维数组的行数。
            arr[0].length代表就是二维数组中第一行的大小,也就是一维数组的大小,也就是列数
     
     
     
    二维数组的初始化
        数据类型[][] 数组名称 = {{初始值},{初始值2},{初始值3}};
     
     
        例如:
            int[][] arr = {{1,3,5,7},{2,4,6},{8,9,10,11,15}};
    
  • 相关阅读:
    226. 翻转二叉树-leetcode
    2的幂-leetcode
    使用 orgmode 写博客园博客
    这是一个通过Emacs Orgmode的cnblogs插件发布的博客
    测试设计的初探
    项目微管理29
    2018091-2 博客作业
    软件工程项目课题和小组成员介绍
    (项目)在线教育平台(三)
    svn 迁移至git操作手册
  • 原文地址:https://www.cnblogs.com/borntodie/p/14092732.html
Copyright © 2011-2022 走看看