2020.03.05 一维数组、二维数组、数组中的常见算法、数组排序中的冒泡排序;

学习内容:
一维数组、二维数组、数组中的常见算法、数组排序中的冒泡排序;

一维数组:
声明方式有动态和静态两种;动态的为:

//动态初始化:先为数组声明以及给元素分配空间,后赋值;
  int[] arr=new int[3];
  arr[0]=3;//注:下标应从0开始;
  arr[1]=6;
  arr[2]=9;

静态的为:

//静态初始化:声明、分配空间同时赋值;
  int a[]=new int[]{3,6,9};
  int[]a={3,6,9};

区别是动态的为先声明后赋值,静态的为声明并赋值。在未赋值时,数组默认赋值为0,对象默认赋值为null;

二维数组:
相当于一个每个元素都为一个数组的一维数组;其静态声明方式为:

int [][]array=new int[][]{{1,2},{3,4},{5,6}};

动态声明方式为:

int[][] array=new int[2][3];
int[][] array=new int[2][];//可以只定义一维长度;

二维数组还有种特殊写法:

int[]x,y[]=new int[][]{{3,8,2},{2,7},{9,0,1,6}};

通过一道例题来练习:

//要求获取二维数组{{3,8,2},{2,7},{9,0,1,6}}所有元素的和;
int[][] array=new int[][]{{3,8,2},{2,7},{9,0,1,6}};
int sum=0;
for(int i=0;i<array.length;i++){//循环一维数组;
	for(int j=0;j<array[i].length;j++){//循环二维数组;
		System.out.print(array[i][j]+" ");//索引方式输出各个元素;
		sum+=array[i][j];
	}
}
System.out.println();
System.out.println("所有元素的和为:"+sum);

数组中的常见问题:
求最大最小值,总和,平均数;
通过声明一个临时储存变量和for循环来求最大最小值;

int[] array={3,5,1,2,8,11};
int max=0;//声明一个临时储存变量;
double sum=0;//总和变量,为求均值准确应用double声明;
double ave=0//为求均值准确应用double声明;
for(int i=0;i<array.length;i++){
	if(array[i]<array[i+1]){
		max=array[i+1];
		i++;
	}
	sum+=array[i];
	ave=sum/array.length;
}
System.out.println("最大值为"+max);
System.out.println("总和为"+sum);
System.out.println("均值为"+ave);

数组排序中的冒泡排序:
利用“单挑”的方法(强的单挑下一个)将各个数组中的元素由大到小排序;
因该排序会需要两元素调换位置,所以应声明一个临时储存变量temp;

int[] array={3,5,1,2,8,11};
int temp=0;
for(int i=array.length-1;i>0;i--){//循环为有几个元素需要“单挑”,-1是因为最后一个元素不需要;
	for(int j=0;j<i;j++){//循环为这个元素需要“单挑”几次;
		if(array[j]<array[j+1]){//按从大到小的顺序排列时用<;
			temp=array[j+1];//条件成立时调换“单挑”两方的位置;
			array[j+1]=array[j];
			array[j]=temp;
		}
	}
}
for(int i=0;i<array.length;i++){//循环为输出排序后的元素;
	System.out.print(array[i]+" ");
}
System.out.println();//这行为了美观;

以上为张光雨于2020.03.05日所学习内容;

问题:
二维数组能否用冒泡排序排列?怎么排?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值