如何排序二维数组?

编程入门 行业动态 更新时间:2024-10-19 02:22:44
本文介绍了如何排序二维数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我需要排序二维数组帮助。我有阵列两行

[5,3,4,1,2][10,20,30,40,50]

和我需要排序它看起来是这样的:

[1,2,3,4,5][40,50,20,30,10]

我知道如何做到这一点与冒泡排序,但我需要一些更快的算法,例如快速排序。

下面是我的冒泡排序code

的for(int i = 0; I<长度为1;我++){         对于(INT J = 0; J<长度-I-1; J ++){            如果(阵列[0] [J]≥阵列[0] [J + 1]){               为(中间体K = 0; K&2; k ++){               INT TMP =阵列[K] [J]。               阵[K] [J] =阵列[K] [J + 1];               阵[K] [J + 1] = TMP;               }           }       }    }

解决方案

转二维数组的java多维数组移调

使用 Arrays.sort(T []一,比较和LT ;?超级T> C)其中,比较各行的索引0比较

再次转的结果:

例如

从: [5,3,4,1,2] [10,20,30,40,50]

获得 [5,10] [3,20] [4,30] [1,40] [2,50]

然后将它们整理到 [1,40] [2,50] [3,20] [4,30] [5,10]

然后再调换为: [1,2,3,4,5] [40,50,20,30,10]

或自己实现快速排序。

I need help with sorting 2D array. I've got array with two rows

[5, 3, 4, 1, 2] [10,20,30,40,50]

and I need to sort it to look like this:

[1, 2, 3, 4, 5] [40,50,20,30,10]

I know how to do that with bubble sort, but I need some faster algorithm, e.g. quicksort.

Here is my bubble sort code

for (int i = 0; i < length-1; i++) { for (int j = 0; j < length-i-1; j++) { if (array[0][j] > array[0][j+1]) { for (int k = 0; k < 2; k++) { int tmp = array[k][j]; array[k][j] = array[k][j+1]; array[k][j+1]=tmp; } } } }

解决方案

transpose the 2D array java multi-dimensional array transposing

use Arrays.sort(T[] a, Comparator<? super T> c) where the comparator compares on index 0 of each row

transpose the result again:

e.g.

from: [5,3,4,1,2] [10,20,30,40,50]

obtain [5, 10] [3, 20] [4, 30] [1, 40] [2, 50]

then sort them to [1, 40] [2, 50] [3, 20] [4, 30] [5, 10]

then transpose again to: [1,2,3,4,5] [40,50,20,30,10]

or implement quicksort by yourself.

更多推荐

如何排序二维数组?

本文发布于:2023-11-29 21:37:47,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1647693.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数组

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!