我需要排序二维数组帮助。我有阵列两行
[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.
更多推荐
如何排序二维数组?
发布评论