《Java程序设计及移动APP开发》课件-第06章_第1页
《Java程序设计及移动APP开发》课件-第06章_第2页
《Java程序设计及移动APP开发》课件-第06章_第3页
《Java程序设计及移动APP开发》课件-第06章_第4页
《Java程序设计及移动APP开发》课件-第06章_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章数组0102036.1一维数组6.2二维数组6.3思考和练习一维数组定义的语法格式为:类型

数组名[];例如:intarr[];创建数组的语法格式为:数组名=new数据元素的类型[数组元素的个数]例如:arr=newint[10];6.1.1一维数组的定义格式6.1一维数组数组是同一类型数组元素的有限有序集合。数组元素的类型可以是基本数据类型,也可以是复合数据类型,可以随机访问数组中的元素。36.1一维数组或者:intarr[];intm=10;arr=newint[m];或者声明和创建二者合一:intarr[]=newint[10];创建数组实际上是为数组申请相应的空间。注意:数组中的元素是从0开始计数的。例如,上例中第一个元素是arr[0],arr[1],arr[2],……,以此类推。实际上,一维数组的创建就包括了一维数组初始化。但是,有时候我们希望单独初始化。数组元素初始化需要用大括号{},然后将相同类型的数据放到存储空间中。例如:intarr[]={15,66,0,-14,-36,106,9,70,23,-26,54,49};示例:选择排序法:数组一共有n个元素,第一次从arr[0]~arr[n-1]中选取最小值,与arr[0]交换。第二次从arr[1]~arr[n-1]中选取最小值与arr[1]交换。第三次从arr[2]~arr[n-1]中选取最小值与arr[2]交换,……,以此类推。通俗点说就是每次找到后面元素中的最小值,然后与第一个元素交换。选择排序法效率适中。6.1一维数组56.1一维数组classSelect{publicvoidsort(intarr[]){//中间值inttemp=0;//外循环:我认为最小的数,从0~长度-1for(intj=0;j<arr.length-1;j++){//最小值:假设第一个数就是最小的intmin=arr[j];//记录最小数的下标的intminIndex=j;//内循环:拿我认为的最小的数和后面的数一个个进行比较for(intk=j+1;k<arr.length;k++){//找到最小值if(min>arr[k]){//修改最小min=arr[k];minIndex=k;}}//当退出内层循环就找到这次的最小值//交换位置temp=arr[j];arr[j]=arr[minIndex];arr[minIndex]=temp;}//输出结果for(inti=0;i<arr.length;i++){System.out.print(arr[i]+"");}}}publicclassClass_1{publicstaticvoidmain(Stringargs[]){intarr[]={25,36,-26,-62,-34,203,15,32,-28,-7,504,168};//调用选择排序法Selectselect=newSelect();select.sort(arr);}}6.1一维数组程序运行结果:-62-34-28-26-7152532361682035046.1一维数组冒泡排序是交换式排序法的一种,是从前向后(或从后向前)依次比较相邻的元素,若发现逆顺序,则交换。小的向前换,大的向后换,像水底的气泡逐渐向上冒,顾名思义冒泡排序法。冒泡排序法效率较低。6.1.2一维数组的应用6.1一维数组96.1一维数组publicclassClass_1{publicstaticvoidmain(Stringargs[]){intarr[]={15,66,0,-14,-36,106,9,70,23,-26,54,49};inttemp=0;//中间值//-------冒泡排序法//外层循环,它决定一共走几趟for(inti=0;i<arr.length-1;i++){//内层循环,开始逐个比较//如果我们发现前一个数比后一个数大,则交换for(intj=0;j<arr.length-1-i;j++){if(arr[j]>arr[j+1]){//换位temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}//输出结果for(inti=0;i<arr.length;i++){System.out.print(arr[i]+",");}}}程序运行结果:-36,-26,-14,0,9,15,23,49,54,66,70,106,6.1一维数组116.2二维数组二维数组的每一个元素是一个一维数组。如果将一维数组看作是链,那么二维数组就是表,二维表,行列表。二维数组可以说是数组的数组,就是说这里的数组类型已经不是基础的类型了,而是数组类型了。6.2.1二维数组的定义格式(1)二维数组定义的语法格式为:数据类型

数组名[][];数据类型[][]数组名;(2)二维数组创建的格式1为:数据类型[][]数组名=new数据类型[二维数组的长度/包含的一维数组的个数][每个一维数组的长度];例如:int[][]arr=newint[3][5];上例创建了一个整型的二维数组,其中包含3个一维数组,每个一维数组可以存储5个整数。arr[0]是下标为0的位置上的一维数组。如果要获取具体的元素需要两个下标,如arr[1][3]。(3)二维数组创建的格式2为:数据类型[][]数组名=new数据类型[二维数组的长度/包含的一维数组的个数][];

例如:int[][]arr=newint[3][];上例表示创建了一个包含了三个整型的一维数组的二维数组。(4)二维数组创建的格式3为:数据类型[][]数组名={{元素},{元素1,元素2},……};int[][]arr={{2,5},{1},{3,2,4},{1,7,5,9,8}};上例表示创建了一个包含了4个整型的一维数组的二维数组,每个一维数组最多包含5个元素。6.2二维数组136.2二维数组6.2.2二维数组的应用二维数组的长度:数组名.length每个一维数组长度:数组名[下标].length二维数组的遍历---两重for循环//遍历二维数组,遍历出来的每一个元素是一个一维数组for(inti=0;i<arr.length;i++){//遍历对应位置上的一维数组for(intj=0;j<arr[i].length;j++){System.out.println(arr[i][j]);}}//二维数组的反转---头尾交换for(intstart=0,end=arr.length-1;start<end;start++,end--){int[]temp=arr[start];arr[start]=arr[end];arr[end]=temp;}6.2二维数组156.2二维数组示例,从控制台输入行数,打印对应的杨辉三角。importjava.util.Scanner;publicclassc1{publicstaticvoidmain(String[]args){//从控制台获取行数Scanners=newScanner(System.in);introw=s.nextInt();//根据行数定义好二维数组,由于每一行的元素个数不同,所以不定义每一行的个数int[][]arr=newint[row][];//遍历二维数组for(inti=0;i<row;i++){//初始化每一行的这个一维数组arr[i]=newint[i+1];//遍历这个一维数组,添加元素

for(intj=0;j<=i;j++){//每一列的开头和结尾元素为1,开头的时候,j=0,结尾的时候,j=iif(j==0||j==i){arr[i][j]=1;}else{//每一个元素是它上一行的元素和斜对角元素之和arr[i][j]=arr[i-1][j]+arr[i-1][j-1];}System.out.print(arr[i][j]+"\t");}System.out.println();}}}程序运行结果:6//自己输入的行数1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论