我已经实现了冒泡排序来对二维java long [] []进行排序,但是我的天哪太慢了,我将需要禁食算法,因为我将生成最大堆大小的数组,jvm将允许我,
所以我认为最好和最快的方法是使用内置的java Arrays.sort
我不介意它是否只能在第一列上排序,因为我可以更改程序以适合它,但我碰到了这一点,但对陌生人并不熟悉,
这将使我能够对整数的维数组进行排序,有人知道如何将其更改为允许多长时间吗?
int d2 [][] = {{1,43},{26,98},{44,398},{11,34},{17,32}};
java.util.Arrays.sort(d2, new java.util.Comparator<int[]>() {
public int compare(int[] a, int[] b) {
return b[0] - a[0];
}
});
我想说些
long d2L [][] = {{1,43},{26,98},{44,398},{11,34},{17,32}};
铸造不是一个选择,因为数字很大
另外,如果有人认为有一种更快的方法可以对所有耳朵进行分类:)
这基于O(NlogN)中的所有列进行排序,即非常快:
import java.util.*;
class Compare2DArray implements Comparator {
public int compare(Object a, Object b) {
int aa[] = (int[]) a;
int bb[] = (int[]) b;
for (int i = 0; i < aa.length && i < bb.length; i++)
if (aa[i] != bb[i])
return aa[i] - bb[i];
return aa.length - bb.length;
}
}
class sort2d {
public static void main(String args[]) {
int d2 [][] = {{1,43},{26,98},{44,398},{11,34},{17,32}};
Arrays.sort(d2, new Compare2DArray());
for (int i = 0; i < d2.length; i++) {
for (int j = 0; j < d2[i].length; j++)
System.out.print(d2[i][j] + " ");
System.out.println();
}
}
}
http://ideone.com/TjEOL
Or you could use generics to avoid casting:
class Compare2DArray implements Comparator<int[]> {
public int compare(int a[], int b[]) {
for (int i = 0; i < a.length && i < b.length; i++)
if (a[i] != b[i])
return a[i] - b[i];
return a.length - b.length;
}
}
编写一个程序,提示用户输入一个双值nxn矩阵,并显示一个新的矩阵,其中对初始矩阵的列进行了排序。您可以使用任何排序算法来解决问题;请在代码头中指定所用排序算法的名称。您的程序必须实现排序算法;不能使用Array类中提供的排序方法。排序应该实现到一个方法中,其中返回一个新数组,而原始数组保持不变: 该程序还应该实现一个方法,打印初始和结果矩阵给用户。打印出来的应该是很好的格式。下面是一个运行示例:
问题内容: 在Java中,我的数组中有一个数据,如下所示 我想根据第一列对其进行排序,所以我的最终数据可以像这样 第一列是格式为“ yyyy.MM.dd HH:mm”的日期,第二列是字符串。 问题答案: 根据一列 对二维数组进行排序第一列是日期格式为“ yyyy.MM.dd HH:mm”的日期,第二列是字符串。 因为您说的是二维数组,所以我假设“格式日期…”表示字符串。这是用于对String []
我的任务是用C#为二维数组创建合并排序算法。数组看起来像这样 我需要从文件中取数组并按x的升序对行进行排序,同时程序要检查是否有相同x值同时不同Y值的坐标对,当数组排序后,程序要将其写入文件中。我已经为一维数组创建了算法,但是不懂如何为二维数组重写算法,这是我的代码,请帮助我
原数据: 根据arr数组里面的price字段排序 期望得到: 麻烦各位大佬帮我看看
问题内容: 我有一个形状为(N,2)的2D numpy数组,其中包含N个点(x和y坐标)。例如: 我想对它进行排序,以使我的点按x坐标排序,然后在x坐标相同的情况下按y排序。因此,上面的数组应如下所示: 如果这是正常的Python列表,我将简单地定义一个比较器来执行我想要的操作,但是据我所知,numpy的sort函数不接受用户定义的比较器。有任何想法吗? 编辑:感谢您的想法!我建立了一个具有100