java中的字符多维数组排序
我的教授要求按列对2d字符数组进行排序,这样他想要排序的附加数组java中的字符多维数组排序,java,arrays,sorting,char,Java,Arrays,Sorting,Char,我的教授要求按列对2d字符数组进行排序,这样他想要排序的附加数组 unsorted sorted last column Lcekoeddhoffbmg Balgfcaelhfkgeb Lkcmggjcdhhglif Kmlhmhcddfoeilc Cgldjhcekjigcdd Cgldjhcekjigcdd Cgldjhcekjigcdn Lkcmggjcdhhglif Bffmdbkcenlafjk Lcekoeddhoffbm
unsorted sorted last column
Lcekoeddhoffbmg Balgfcaelhfkgeb
Lkcmggjcdhhglif Kmlhmhcddfoeilc
Cgldjhcekjigcdd Cgldjhcekjigcdd
Cgldjhcekjigcdn Lkcmggjcdhhglif
Bffmdbkcenlafjk Lcekoeddhoffbmg
Fggdijijegfblln Jjlncnimjldfedj
Jjlncnimjldfedj Bffmdbkcenlafjk
Amliglfohajcdmm Amliglfohajcdmm
Balgfcaelhfkgeb Fggdijijegfblln
Kmlhmhcddfoeilc Cgldjhcekjigcdn
但问题是他希望整行都是相同的字符,所以如果我们对最后一列进行排序,我们只会相应地上移或下移行。我甚至不知道如何开始,如果您能提供任何帮助,我将不胜感激。您可以将每个字符数组转换为字符串,然后使用java的字符串排序功能。然后将字符串转换回字符数组。假设您知道如何对1d数组进行排序(否则请查找),这是非常相似的 不是交换两个字符(当使用冒泡排序或基于交换项的任何其他排序算法时),而是交换两个完整的行。 所以你会得到这样的结果(对于气泡排序):
就像常规的交换实现一样,但对于所有项目。您是如何尝试解决此问题的?这是分配问题。可能他不允许使用API。此idea服务器按整行对矩阵进行排序,而OP需要按列对2d字符数组进行排序。另外,Java的
String
没有排序功能,还有其他API,如Java.util.array
或Java.util.Collections
来完成这项工作,但由于这看起来像是家庭作业,我猜OP不能使用任何一个。在问题的第一行,你没有读过2d字符数组按列排序的哪一部分吗?正如我读到的:每行的最后一个字符(即最后一列)用于对行进行排序。这正是我的解释和伪代码的目的。
for char1 of each_last_row_char
for char2 of each_last_row_char_after_char1
if char2 < char2 then
swap rows of char1 and char 2
end
end
end
for index of row_items
tmp = row1[index]
row1[index] = row2[index]
row2[index] = tmp
end