首页 文章

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

提问于
浏览
0

假设我可以访问一个稳定的排序算法,可以对整数数组进行排序 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

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

  • 0

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

相关问题