第6章 数组和稀疏矩阵.pptx

第6章 数组和稀疏矩阵.pptx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共57页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第6章数组和稀疏矩阵;数组是一个二元组(idx,value)的集合,对每个idx,都有一个value值与之对应。idx称为下标,可以由一个整数、两个整数或多个整数构成,下标含有d(d≥1)个整数称为维数是d。

数组按维数分为一维、二维和多维数组。

一维数组A是n(n1)个相同类型元素a0,a1,…,an-1构成的有限序列,其逻辑表示为A=(a0,a1,…,an-1),其中,A是数组名,ai(0≤i≤n-1)是数组A中序号为i的元素。

一个二维数组可以看作是每个数据元素都是相同类型的一维数组的一维数组。

以此类推。;二维数组的逻辑关系用二元组表示;数组具有以下特点;d维数组抽象数据类型;6.1.2数组的存储结构;2.d维数组;;;更一般地,数组A[c1..d1,c2..d2],则该数组按行优先存储时有:

LOC(ai,j)=LOC(ac1,c2)+[(i-c1)×(d2-c2+1)+(j-c2)]×k

按按行优先存储时有:

LOC(ai,j)=LOC(ac1,c2)+[(j-c2)×(d1-c1+1)+(i-c1)]×k;6.1.3Java中的数组;Java数组初始化有两种方式,一种是静态初始化,即初始化时由程序员显式指定每个数组元素的初始值,由系统决定数组长度,另外一种是动态初始化,即初始化时程序员只指定数组长度,由系统为数组元素分配初始值。例如:

int[]a=newint[]{1,2,3}; //静态初始化

String[]b=newString[3]; //动态初始化

b[0]=Hello;

b[1]=World;

b[2]=HelloWorld;;int[]c=newint[N];

定义的一维数组c的内存空间如图所示,总共占用24+4N个字节。;2.二维数组;Java语言中把二维数组看作是一维数组的数组,数组空间不是连续分配的,所以不要求二维数组每一维的大小相同。例如:

int[][]a=newint[2][];

a[0]=newint[3];

a[1]=newint[5];

System.out.printf(数组a的大小:%d\n,a.length); //输出:2

System.out.printf(a[0]的大小:%d\n,a[0].length); //输出:3

System.out.printf(a[1]的大小:%d\n,a[1].length); //输出:5;;Java数组的说明;(3)由于Java中数组(非基本类型的一维数组或者二维及以上的数组)并不像C/C++数组占用一片连续空间,所以C/C++数组的一些优化操作并不适合Java数组。例如,在C/C++中定义二维数组:;3.Java中的数组类Arrays;(6)static?voidsort(int[]?a,int?fromIndex,int?toIndex):对int型数组a的[fromIndex,toIndex)范围按数字升序进行排序。???序范围从索引fromIndex(包括)一直到索引toIndex(不包括),如果fromIndex=toIndex,则排序范围为空。

(7)Evoidsort(E[]?a,Comparator?superE?c):根据指定比较器产生的顺序对对象数组a进行排序。

(8)Evoidsort(E[]?a,intfromIndex,inttoIndex,Comparator?superE?c):根据指定比较器产生的顺序对指定对象数组a从索引fromIndex(包括)一直到索引toIndex(不包括)范围内元素进行排序。

(9)static?StringtoString(int[]?a):返回int数组a的内容的字符串表示形式。;【例6.2】有一个整数数组为(6,2,1,9,5,7,4,3,8),采用Arrays类的sort()方法实现以下方式排序:

(1)全部元素递增排序。

(2)全部元素递减排序。

(3)将[2..6]范围的元素递增排序。;importjava.util.*;

publicclassExam6_2

{publicstaticvoidmain(String[]args)

{int[]a={6,2,1,9,5,7,4,3,8};

System.out.print(增序排序:);

Arrays.sort(a);

for(inti=0;ia.length;i++) //输出:123456789

System.out.print(a[i]+);;Sys

文档评论(0)

:-) + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档