我试图建立一个方法,将排序一个二维数组的双打按列。基于所提供的规范,此方法也不应该采用长度不等的行的粗糙数组。我正在使用双[][]mdarray={{3.0, 4.0, 1.0, 8.0},{13.0, 2.0, 12.0, 9.0}测试这个
使用打印方法时,应将其显示为
3.0, 2.0, 1.0, 8.0,
13.0, 4.0, 12.0, 9.0,
使用单独的打印方法输出结果时,数组似乎没有改变。我认为我的问题是,在进入下一列之前,如何检查每一行中的某一列,但我不确定在没有数组的情况下如何轻松做到这一点。sort()方法,此练习不允许使用该方法。
public void sort(boolean byColumn)
{
if(isRagged() == true)
{
System.out.println("Ragged arrays cannot be sorted by column.");
}
else
{
for(int i = 0; i < mdarray.length; i++)
{
for(int j = i + 1; j < mdarray.length - 1; j ++)
{
for(int k = 0; k < mdarray[i].length; k++)
{
if(mdarray[i][k] > mdarray[j][k])
{
double temp = mdarray[i][k];
mdarray[i][k] = mdarray[j][k];
mdarray[i][k] = temp;
}
}
}
}
}
}
如您所知,可以将2D数组视为一组列或行。这个程序必须对列进行排序,所以我们将数组视为一组列。
程序完成:
>
选择你最喜欢的1D数组排序算法(看看这里)
double[][] mdarray = {{3.0, 4.0, 1.0, 8.0}, {13.0, 2.0, 12.0, 9.0}};
//loop all columns
for(int col = 0; col < mdarray[0].length; col++){
//loops all rows and use bubble sort algorithm in ascending order
for(int i = 1; i < mdarray.length; i++){
for(int j = i; j < mdarray.length; j++){
if(mdarray[j - 1][col] > mdarray[j][col]){
//swap
double temp = mdarray[j][col];
mdarray[j][col] = mdarray[j-1][col];
mdarray[j-1][col] = temp;
}
}
}
}
如果打印每行mdarray
,输出将为:
mdarray[0]: 3.0 2.0 1.0 8.0
mdarray[1]: 13.0 4.0 12.0 9.0
实际上,您还切换了i
和j
变量的边界。由于j
从i 1
迭代,它应该获得高达mdarray.length
的值,因此条件应该是j
哦,还有我们在注释中提到的错误——当切换元素时,将
temp
变量分配给mdarray[j][k]
。
问题内容: 我想对整数的arraylist的arraylist进行排序,需要帮助吗? 我被告知,我需要实现比较器或可比对象,然后使用collection.sort对列表列表进行排序… 问题答案: 没有错误检查空列表,但是这里是。 使用Java 8,它变得更加简洁:
问题内容: 我有一个包含多个数组的数组,我想根据这些数组中的某个字符串对数组进行排序。 如何按名称排序,以便 阿尔伯特排 在首位, 齐默尔曼排 在最后? 我知道如果可以使用整数进行排序,但是字符串使我毫无头绪,该怎么办。 谢谢您帮忙!:) 问题答案: 这可以通过将支持函数作为参数传递给方法调用来实现。 像这样:
本文向大家介绍java对数组进行排序的方法,包括了java对数组进行排序的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java对数组进行排序的方法。分享给大家供大家参考。具体如下: 执行结果: 排序前: 12 24 25 4 9 68 45 7 排序后: 4 7 9 12 24 25 45 68 希望本文所述对大家的java程序设计有所帮助。
问题内容: 我有一个数组数组: 需要按特定顺序进行: 3452342 5867867 7867867 1231233 我将如何去做?我之前已经对数组进行了排序,并阅读了许多其他文章,但它们始终基于比较(即valueA <valueB)。 感谢帮助。 问题答案: 您可以用来精确指示如何对数组进行排序。在这种情况下,可以在比较函数中使用该数组。 下面的示例使用a 使生活更轻松。 这项工作的关键是使要比
问题内容: 请原谅我这是多余的还是超基本的。我要从R进入Python / Numpy,并且很难在脑海里翻转事物。 我有一个维数组,我想使用索引值的另一个n维数组进行排序。我知道我可以将其包装成一个循环,但是似乎应该有一种非常简洁的Numpyonic方式将其击败并提交。这是设置n = 2的问题的示例代码: 所以现在我有一个2 x 5的随机数数组和2 x 5的索引。我已经阅读了约10次帮助,但显然我的
但我得到一条错误消息,说无法在原语类型int上调用compareToIgnoreCase(int) 我如何修复这段代码,使它能够用整数值对列表进行排序?