| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> Java数组 -> 正文阅读 |
|
[数据结构与算法]Java数组 |
目录 一、数组的概述数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。 数组的常见概念: 1、数组名 2、下标(或索引):从0开始 3、元素 4、数组的长度 数组的特点:数组式有序排列的
????????????????按照维度分:一维数组、二维数组... ? ? ? ? ????????按照元素的数据类型分:基本数据类型元素的数组、引用数据元素类型的数组(即对象数组) 二、一维数组的使用2.1一维数组的声明方式????????????????????????????????????????????????????????????????type var[] 或 type[] var; 例如: int a[]; ????????????int[] a1; ????????????double b[]; ????????????String[] c; //引用类型变量数组 java语言中声明数组时不能指定其长度,例如: inta[5];//非法声明 2.2一维数组的初始化静态初始化数组的初始化和数组元素的赋值操作同时进行(在定义数组的同时就为数组元素分配空间并赋值。) ?动态初始化数组的初始化和数组元素赋值操作分开进行 ?2.3一维数组元素的引用
2.4一维数组元素的默认初始化值基本数据类型数组在显式赋值之前, Java会自动给他们赋默认值
2.5一维数组的练习升景坊单间短期出租4个月,550元/月(水电煤公摊,网费35元/月),空调、卫生间、厨房齐全。 屋内均是IT行业人士,喜欢安静。所以要求来租者最好是同行或者刚毕业的年轻人,爱干净、安静。
2.6内存的简化结构?一维数组的内存解析三、多维数组的使用
3.1二维数组的初始化二维数组[] []:数组中的数组 动态初始化
????????????????int[][] arr = new int[3][2]; 定义了名称为arr的二维数组 二维数组中有3个一维数组 每一个一维数组中有2个元素 一维数组的名称分别为arr[0], arr[1], arr[2] 给第一个一维数组1脚标位赋值为78写法是:arr[0][1] = 78;
????????????????int[][] arr = new int[3][]; 二维数组中有3个一维数组。 每个一维数组都是默认初始化值null (注意:区别于格式1) 可以对这个三个一维数组分别进行初始化 arr[0] = new int[3]; arr[1] = new int[1]; arr[2] = new int[2]; 注: int[][]arr = new int[][3]; //非法 静态初始化
????????????????int[][] arr = new int[][]{{3,8,2},{2,7},{9,0,1,6}}; 定义一个名称为arr的二维数组,二维数组中有三个一维数组 每一个一维数组中具体元素也都已初始化 第一个一维数组 arr[0] = {3,8,2}; 第二个一维数组 arr[1] = {2,7}; 第三个一维数组 arr[2] = {9,0,1,6}; 第三个一维数组的长度表示方式:arr[2].length 注意特殊写法情况:int[] x,y[]; x是一维数组,y是二维数组。 ?Java中多维数组不必都是规则矩阵形式 3.2二维数组的默认初始化值
3.3二维数组的内存解析四、数组中设计的常见算法?1. 数组元素的赋值(杨辉三角、回形数等) 2. 求数值型数组中元素的最大值、最小值、平均数、总和等 3. 数组的复制、反转、查找(线性查找、二分法查找) 4. 数组元素的排序算法 排序算法排序:假设含有n个记录的序列为{R1,R2,...,Rn},其相应的关键字序列为{K1,K2,...,Kn}。将这些记录重新排序为{Ri1,Ri2,...,Rin},使得相应的关键字值满足条Ki1<=Ki2<=...<=Kin,这样的一种操作称为排序。 ?通常来说,排序的目的是快速查找。 衡量排序算法的优劣:
排序算法分类内部排序和外部排序。
冒泡排序介绍: 冒泡排序的原理非常简单,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。 排序思想: 1.比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。 2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。 这步 做完后,最后的元素会是最大的数。 3. 针对所有的元素重复以上的步骤,除了最后一个。 4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较为止。
快速排序介绍: 快速排序通常明显比同为O(nlogn)的其他算法更快,因此常被采用,而且快排采用了分治法的思想,所以在很多笔试面试中能经常看到快排的影子。可见掌握快排的重要性。 快速排序(Quick Sort)由图灵奖获得者Tony Hoare发明,被列为20世纪十 大算法之一,是迄今为止所有内排序算法中速度最快的一种。冒泡排序的升 级版,交换排序的一种。快速排序的时间复杂度为O(nlog(n))。 排序思想: 1. 从数列中挑出一个元素,称为"基准"(pivot) ?2. 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准 值大的摆在基准的后面(相同的数可以到任一边)。在这个分区结束之后, 该基准就处于数列的中间位置。这个称为分区(partition)操作。 3. 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数 列排序。 4. 递归的最底部情形,是数列的大小是零或一,也就是永远都已经被排序好 了。虽然一直递归下去,但是这个算法总会结束,因为在每次的迭代 (iteration)中,它至少会把一个元素摆到它最后的位置去。
相关练习Java数组的练习_要向着光的博客-CSDN博客https://blog.csdn.net/zssxcj/article/details/127319679?spm=1001.2014.3001.5501五、Arrays工具类的使用java.util.Arrays类即为操作数组的工具类,包含了用来操作数组(比如排序和搜索的各种方法。
数组排序java.util.Arrays类的sort()方法提供了数组元素排序功能
六、数组中常见的异常
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 2:10:24- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |