永发信息网

java编写一个方法,使用下面的方法头对二维数组排序 public static void sort(int m[][])

答案:4  悬赏:50  手机版
解决时间 2021-01-14 17:01
  • 提问者网友:火车头
  • 2021-01-13 21:56
java编写一个方法,使用下面的方法头对二维数组排序 public static void sort(int m[][])
最佳答案
  • 五星知识达人网友:爱难随人意
  • 2021-01-13 23:36
class Demo()
{
public static void main(String[] args)
{
int arr[][] = new int[7][2];
Scanner scann = new Scanner(System.in);
System.out.println("Please input 7 group numbers in pair: ");
for(int i=0;i{
for (int j = 0; j < arr[0].length; j++)
{
      arr[i][j] = scann.nextInt();
}
}
sort(arr);
for (int i = 0; i < arr.length; i++)
{
for (int j = 0; j < arr[i].length; j++)
{
System.out.print(arr[i][j]);
if (j % 2 == 1)
System.out.println();
else
System.out.print(",");
}
}
}
public static void sort(int arr[][])
{
for (int i = 0; i < arr.length; i++)
{
for (int j = i + 1; j < arr.length; j++)
{
if (arr[i][0] > arr[j][0])
{
for (int k = 0; k < 2; k++)
{
int temp = arr[i][k];
arr[i][k] = arr[j][k];
arr[j][k] = temp;
}
}
if (arr[i][0] == arr[j][0] && arr[i][1] > arr[j][1])
{
int temp = arr[i][1];
arr[i][1] = arr[j][1];
arr[j][1] = temp;
}
}
}
}
}追问这个数组没有通行,老师要求从键盘输入行和列追答已经改好, 请查收追问在哪追答上面的code 我已经更新过, 请查收追问没收到呀追答class Demo()
{
public static void main(String[] args)
{
int arr[][] = new int[7][2];
Scanner scann = new Scanner(System.in);
System.out.println("Please input 7 group numbers in pair: ");
for(int i=0;i{
for (int j = 0; j < arr[0].length; j++)
{
      arr[i][j] = scann.nextInt();
}
}
sort(arr);
for (int i = 0; i < arr.length; i++)
{
for (int j = 0; j < arr[i].length; j++)
{
System.out.print(arr[i][j]);
if (j % 2 == 1)
System.out.println();
else
System.out.print(",");
}
}
}
public static void sort(int arr[][])
{
for (int i = 0; i < arr.length; i++)
{
for (int j = i + 1; j < arr.length; j++)
{
if (arr[i][0] > arr[j][0])
{
for (int k = 0; k < 2; k++)
{
int temp = arr[i][k];
arr[i][k] = arr[j][k];
arr[j][k] = temp;
}
}
if (arr[i][0] == arr[j][0] && arr[i][1] > arr[j][1])
{
int temp = arr[i][1];
arr[i][1] = arr[j][1];
arr[j][1] = temp;
}
}
}
}
}追问如果有3列呢
全部回答
  • 1楼网友:拜訪者
  • 2021-01-14 01:13
mark一下,等等俺给你写一个追问怎么标记追答我给你写一个,你题目里列出来的排序结果不对吧。。。追问对的追答public class Test
{
public static void main(String[] args)
{
Test t = new Test();
int[][] oldArrs = {{4, 2},{1, 7},{4, 5},{1, 2},{1, 1},{4, 1}};
int[] tempArr = null;
int width = 0;
int height = 0;
/** 按行排序 */
for (int[] arrs : oldArrs)
{
width = arrs.length;
height++;
t.sortArray(arrs);
}
/** 按列排序 */
tempArr = new int[height];
for (int i = 0; i < width; i++)
{
for (int j = 0; j < height; j++)
{
tempArr[j] = oldArrs[j][i];
}
tempArr = t.sortArray(tempArr);
for (int k = 0; k < tempArr.length; k++)
{
oldArrs[k][i] = tempArr[k];
}
}
/** 输出结果 */
for (int[] arrs : oldArrs)
{
for (int i : arrs)
{
System.out.print(i+" ");
}
System.out.println();
}

}
  • 2楼网友:酒安江南
  • 2021-01-13 23:57
没理解楼主的问题,所以写了两个,看是哪个
//1
    public static void main(String[] args) {
int before[][] = { { 2, 3 }, { 4, 2 }, { 5, 2 }, { 1, 3 }, { 4, 1 } };
sort(before);
show(before);
}
private static void show(int[][] before) {
for (int i = 0; i < before.length; i++) {
for (int j = 0; j < before[i].length; j++) {
System.out.print(before[i][j]);
System.out.print(",");
}
System.out.println();
}
}
public static void sort(int num[][]) {
int temp = num[0].length;
for (int i = 0; i < temp; i++) {
if (i == 0) {
int[] temp1;
for (int j = 0; j < num.length; j++) {
for (int j2 = j + 1; j2 < num.length; j2++) {
if (num[j][i] > num[j2][i]) {
temp1 = num[j];
num[j] = num[j2];
num[j2] = temp1;
}
}
}
}
if (i == 1) {
int temp2;
for (int j = 0; j < num.length; j++) {
for (int j2 = j + 1; j2 < num.length; j2++) {
if (num[j][i - 1] == num[j2][i - 1]) {
if (num[j][i] > num[j2][i]) {
temp2 = num[j][i];
num[j][i] = num[j2][i];
num[j2][i] = temp2;
}
}
}
}
}
}
}
//1结果:
//    1,3,
//    2,3,
//    4,1,
//    4,2,
//    5,2,
//---------------------------
//2
public static void main(String[] args) {
int i, j;
Scanner input = new Scanner(System.in);
System.out.println("please input the row:");
int m = input.nextInt();
System.out.println("please input the column:");
int n = input.nextInt();
int[][] before = new int[m][n];
System.out.println("please input the before:");
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
before[i][j] = input.nextInt();
}
}
for (int[] ks : before) {
sort(ks);
}
show(before);
}
private static void show(int[][] before) {
for (int i = 0; i < before.length; i++) {
for (int j = 0; j < before[i].length; j++) {
System.out.println("num" + i + ":" + before[i][j]);
}
}
}
public static void sort(int num[]) {
int temp;
for (int i = 0; i < num.length; i++) {
for (int j = i+1; j < num.length; j++) {
if (num[i] > num[j]) {
temp = num[i];
num[i] = num[j];
num[j] = temp;
}
}
}
}
  • 3楼网友:七十二街
  • 2021-01-13 23:51
import java.util.Arrays;
public class TestOne
{
public static void main ( String[] args )
{
int[][] m = { { 4, 2 }, { 1, 7 }, { 4, 5 }, { 1, 2 }, { 1, 1 }, { 4, 1 } };
sort (m);
for ( int[] is : m )
{
System.out.println (Arrays.toString (is));
}
}
public static void sort ( int[][] m )
{
for ( int row = 0; row < m.length; row++ )
{
for ( int col = 0; col < m[row].length; col++ )
{
for ( int line = 0; line < m.length; line++ )
{
if (m[line][col] > m[row][col])
{
int temp = m[line][col];
m[line][col] = m[row][col];
m[row][col] = temp;
}
}
}
}
}
}追问这个数组没有通行,老师要求从键盘输入行和列追答
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯