在Ruby中,您可以轻松地对数组进行排序:
array_of_arrays = [
[1, 0, 1],
[0, 1, 0],
[0, 1, 1]
]
sorted_arrays = array_of_arrays.sort
# => [[0, 1, 0], [0, 1, 1], [1, 0, 1]]
# OR
sorted_arrays = array_of_arrays.sort{|a, b| a <=> b}
# => [[0, 1, 0], [0, 1, 1], [1, 0, 1]]
在Swift中有同样简单的方法吗?
我在Swift 2.2中有一个解决方案,但它涉及抓取car
和cdr
(对于Lisp / Scheme人员。first
和rest
为Clojure人员。
如果第一个元素相等,我将每个数组的其余元素传递回函数,直到它用完了要测试的元素。
它不是太糟糕,但它涉及扩展Array以具有一个函数,它将给我car
和cdr
,然后是必须定制的递归循环基于数组的内容。我觉得必须有更好的方法,特别是在如上所示的整数数组数组的简单情况下。
如果没有其他人有更简单的话,我会在几天内发布我的解决方案。