Java学习----二维数组排序
课堂代码实验
问题:
(对二维数组排序)编写一个方法,使用下面方法对二维数组排序:
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}}。
基本思路:
先排行,后排列。排序的思路相同。将一维数组理解成二维数组。做的时候顺便画图理解更好。
代码如下:
package java_class;import java.util.Scanner;public class Sort_my_Array {public static void main(String[] args) {Scanner scn = new Scanner(System.in);System.out.println("请输入二维数组的横坐标和纵坐标:");int [][] my_array = new int[scn.nextInt()][scn.nextInt()];System.out.println("请输入你的数组:");for(int i = 0;i < my_array.length;i++ ){for(int j = 0;j < my_array[i].length;j++){my_array[i][j] = scn.nextInt();}}System.out.println("排序前数组如下:");print_array(my_array);cmp(my_array); //将数组的第一位先排下序sort(my_array);System.out.println("排序后数组如下:");print_array(my_array);}public static void cmp(int m[][]){for(int i = 0;i < m.length;i++){for (int j = i+1;j < m.length;j++) {if (m[i][0] > m[j][0]) {int[] temp = m[j];m[j] = m[i];m[i] = temp;}}}}public static void sort(int[][] m){for (int i =0;i < m.length;i++){int k =1;for (int j = i+1;j < m.length;j++){if(m[j][0] > m[i][0])break;if (m[i][k] == m[j][k]){do {k++;}while(m[i][k] != m[j][k]);if (m[i][k] > m[j][k]){int[] temp = m[j];m[j] = m[i];m[i] = temp;}}if (m[i][k] > m[j][k]){int[] coc = m[j];m[j] = m[i];m[i] = coc;}}}}public static void print_array(int m[][]){for(int i = 0;i < m.length;i++ ){for(int j = 0;j < m[i].length;j++){System.out.print(m[i][j] + " ");}System.out.println();}}
}
运行结果实例:
Java学习----二维数组排序相关推荐
- java 二维数组排序
二维数组排序 ① 实现Comparator接口 :匿名内部类实现 初始化数组:int [][]arr = new int [n][2]; 排序规则: 对于n行两列的元素,先按数组的第一列进行升序排序, ...
- Java、对二维数组排序
编写一个方法,使用下面的方法头对二维数组排序: public static void sort(int m[][]) 这个方法首先按行排序,然后按列排序. 例如:数组{ ...
- java 二维数组 排序_二维数组排序
参考: https://www.cnblogs.com/rujianming/p/11779922.html https://blog.csdn.net/westwewe/article/detail ...
- Java二维数组排序(按照某一列值大小)
利用Comparator接口来实现: 若对Comparator接口不熟悉请先看这一篇:https://blog.csdn.net/weixin_43849277/article/details/108 ...
- Java黑皮书课后题第8章:*8.16(对二维数组排序)编写一个方法,使用下面的方法头对二维数组排序。这个方法首先按行排序,然后按列排序
*8.16(对二维数组排序)编写一个方法,使用下面的方法头对二维数组排序.这个方法首先按行排序,然后按列排序 题目 题目描述 破题 代码 运行实例 题目 题目描述 *8.16(对二维数组排序)编写一个 ...
- java 二维数组排序 sort_js sort 二维数组排序的用法小结
最近在搞js 排序的问题,因为数据库排序太耗资源,如果能转移到客户端去排序,能大大D减少服务器内存消耗.客户端的话,除了js,就是as了,可惜我as学得太烂,所以只能选择js来研究研究了...经过我的 ...
- Java二维数组排序
今天在刷 力扣的时候,有道题卡住了,没办法去看题解,发现题解是将其二维数组排序了,我才猛然发现我还不了解二位数组排序的知识.所以来记录一下. 答案中的代码是这样的,假设需要排序的数组intervals ...
- 二维数组排序 java_java中的二维数组排序是怎样的?实例分享
近些年随着科学技术水平的不断进步与发展,越来越多的人开始意识到java编程语言的重要性.也开始主动的学习这门语言.今天就来为大家介绍一些java中的基础知识,也就是java中的二维数组排序是怎样的?一 ...
- c语言sort函数排序二维数组,js 二维数组排序sort()函数
一.按数值排序 var arr = [[1, 2, 3], [7, 2, 3], [3, 2, 3]]; arr.sort(function(x, y){ return x[0] – y[0]; }) ...
最新文章
- python字符串split_「干货」Python字符串中的split方法
- 出去旅行带上这些常用日语就够啦!
- Bamboolib -- 十分钟教会业务小姐姐做数据分析
- boost::mpi模块all_reduce() 集合的测试
- 前端学习(1350):用户的增删改查操作7增删改查
- 微信小程序 客服功能 客服消息
- 搬家请搬家公司好还是请朋友帮忙好?
- 启动关闭HadoopSpark历史服务
- 解决办法:更新linux时候提示“由于没有公钥,无法验证下列签名 ***”
- Java8 lambda 的使用
- linux安装 soapui_在Linux/Unix上安装开源测试工具SoapUI
- 并发测试工具Jmeter安装与简单使用
- 樱(桜) - 堀江由衣 (日语-中文-罗马)
- 计算机中8位二进制机器数,一个字节由8位二进制数组成,其最大容纳的十进制整数为()...
- win10(家庭版)打开本地组策略失败的处理方法
- 还只会用小黄鸭解压?看来你不是一个时髦的程序员!
- Ubuntu清理系统垃圾 命令
- 【Redis】回顾Redis知识点之事务机制
- 01-旭日X3派测评——开箱测试系统烧写性能初测
- 【论文阅读】Learning with Hypergraphs: Clustering, Classification, and Embedding