使用给定的排序函数对对数组进行排序

时间:2018-05-15 16:03:11

标签: sorting

让我们说我可以访问一个稳定的排序算法,可以对整数数组A进行排序。因此sort(A)会按升序返回A的元素。

我有一对整数对,我想对第二个元素进行排序,其中重复是可能的。如果第二个元素中存在重复项,则数组将保留元素的顺序(它应该是稳定的)。

所以如果array有条目:

(1,2),(1,1),(0,2),(3,2),(4,1)

然后结果将是:

(1,1),(4,1),(1,2),(0,2),(3,2)

这是可能的,只使用我提供的排序功能,还是我需要编写自己的排序功能?

2 个答案:

答案 0 :(得分:0)

array.sorted(by:{$ 0.1< $ 1.1})

答案 1 :(得分:0)

在考虑了一段时间之后,我认为这可能有用,但也许有人可以仔细检查它是否有意义:
我正在考虑创建一个映射,使得if(x,y)和(z,y)是数组中唯一的第二个分量为y的对,则map(y)= [x,z]。换句话说,给定一个整数x,该映射找到所有整数y的集合,使得(y,x)是数组中的一对。我应该能够通过循环遍历数组以线性时间(对数组的大小)构造此映射,然后在y上排序后,使用映射重建原始数组(再次以大小的线性时间)成对数组。)