失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Java黑皮书课后题第8章:*8.16(对二维数组排序)编写一个方法 使用下面的方法头对二

Java黑皮书课后题第8章:*8.16(对二维数组排序)编写一个方法 使用下面的方法头对二

时间:2019-09-13 16:28:42

相关推荐

Java黑皮书课后题第8章:*8.16(对二维数组排序)编写一个方法 使用下面的方法头对二

*8.16(对二维数组排序)编写一个方法,使用下面的方法头对二维数组排序。这个方法首先按行排序,然后按列排序

题目题目描述破题代码运行实例

题目

题目描述

*8.16(对二维数组排序)编写一个方法,使用下面的方法头对二维数组排序:

public static void sort(int m[][])

这个方法首先按行排序,然后按列排序

例如:数组{{4,2}, {1,7}, {4,5}, {1,2}, {1,1}, {4,1}},被排序为{{1,1}, {1,2}, {1,7}, {4,1}, {4,2}, {4,5}}

破题

这里因为没有要求获取用户输入,所以没必要再从控制台获取,完全可以使用题目中给出的数组{{4,2}, {1,7}, {4,5}, {1,2}, {1,1}, {4,1}}调用方法sort,将原数组传入sort方法:新建一个int[]对象用于临时存储,长度为2sort方法:使用双层for循环,遍历第i1个数组和第i2个数组sort方法:比较数组[i1][0]和[i2][0]数值大小,大于则将两个子数组进行交换sort方法:比较数组[i1][1]和[i2][1]数值大小,大于则将两个子数组进行交换sort方法:输出结果

代码

public class Test8_16 {public static void main(String[] args) {//1. 这里因为没有要求获取用户输入,所以没必要再从控制台获取,完全可以使用题目中给出的数组int[][] array = {{4,2}, {1,7}, {4,5}, {1,2}, {1,1}, {4,1}};//2. 调用方法sort,将原数组传入sort(array);}public static void sort(int m[][]){//3. sort方法:新建一个int[]对象用于临时存储,长度为2int[] temp = new int[2];//4. sort方法:使用双层for循环,遍历第i1个数组和第i2个数组for (int i1 = 0 ; i1 < m.length - 1; i1++){for (int i2 = i1 + 1 ; i2 < m.length ; i2++){//5. sort方法:比较数组[i1][0]和[i2][0]数值大小,大于则将两个子数组进行交换if (m[i1][0] > m[i2][0]){//交换temp[0] = m[i1][0];temp[1] = m[i1][1];m[i1][0] = m[i2][0];m[i1][1] = m[i2][1];m[i2][0] = temp[0];m[i2][1] = temp[1];}}}//5. sort方法:比较数组[i1][1]和[i2][1]数值大小,大于则将两个子数组进行交换for (int i1 = 0 ; i1 < m.length - 1; i1++){for (int i2 = i1 + 1 ; i2 < m.length ; i2++){if (m[i1][0] == m[i2][0]){if (m[i1][1] > m[i2][1]){temp[0] = m[i1][0];temp[1] = m[i1][1];m[i1][0] = m[i2][0];m[i1][1] = m[i2][1];m[i2][0] = temp[0];m[i2][1] = temp[1];}}}}//6. sort方法:输出结果for (int i = 0 ; i < 5 ; i++){for (int j = 0 ; j < 2; j++){System.out.print(m[i][j] + " ");}System.out.println();}}}

运行实例

1 1 1 2 1 7 4 1 4 2

Java黑皮书课后题第8章:*8.16(对二维数组排序)编写一个方法 使用下面的方法头对二维数组排序。这个方法首先按行排序 然后按列排序

如果觉得《Java黑皮书课后题第8章:*8.16(对二维数组排序)编写一个方法 使用下面的方法头对二》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。