我有一个带有四列的二维数组(字母 A - D ),每列有三行。这是我的数组的直观表示:
A B C D
1 3 9 0
2 8 2 1
8 4 10 3
我想按每列中最小的数字对列进行排序。这就是我希望我的数组在排序后的样子:
D A C B
0 1 9 3
1 2 2 8
3 8 10 4
D 列首先是因为列中的最小数字是0
,而0
是所有列中最小的数字'最小的数字。接下来是 A ,因为 A 中的最小数字是1
,而1
小于2
(列中的最小数字) C )和3
(列 B 中的最小数字)。
任何帮助都将不胜感激。
答案 0 :(得分:2)
我认为会这样做:
arr = [[1,2,8], [3,8,4], [9,2,10], [0,1,3]]
arr.sort! { |a, b| a.min <=> b.min }
答案 1 :(得分:0)
input = %q(1 3 9 0
2 8 2 1
8 4 10 3)
array = input.split("\n").map(&:split).transpose
result = array.map{|x| x.map(&:to_i).sort}.sort
#=> [[0, 1, 3], [1, 2, 8], [2, 9, 10], [3, 4, 8]]