根据排序另一个名为?的列表产生的隐含重新排序重新排序一个列表的过程是什么?

问题描述 投票:3回答:4

我对任何特定算法都不感兴趣;我只是想知道这样做是否有一个我不知道的常用名称。

具体来说,我说有X = [42, 0, 99]Y = ["a", "b", "c"]。什么叫我重新排序Y的方式与我必须重新排序X以使X成为一个排序列表,与["b", "a", "c"]结束?

重新排序本身,这是一种列表 - 即[<2nd>, <1st>, <3rd>] - 它有一个共同的名称呢?

看起来这将是一种具有我应该知道的名称的操作,具有自己的维基百科页面和所有内容(或者NIST的算法和数据结构词典中的条目:http://xw2k.nist.gov/dads/)。当有人回答这个问题时,我可能会觉得自己像个假人。

algorithm list sorting naming
4个回答
2
投票

重新排序本身称为permutation(见旁注)。

我不知道有关这种情况的特殊术语,但你可以说你正在应用将列表X排序到列表Y的排列。

旁注:请注意,“置换”一词可以指一组元素的特定排序,例如,有序列表[3,1,2]是数字{1,2,3}的排列,如以及元素的重新排序(如转换本身),例如将有序列表[3,1,2]置换为有序列表[1,2,3]的元素。


1
投票

我大多将它称为“索引排序”。 X是您用来排序Y的索引。


1
投票

据我所知,这个特定情况没有术语,但是您将相同的转换应用于列表X和Y,并创建转换,以便将列表X转换为排序列表。


1
投票

您可以将其称为并行键排序,因为X包含排序键,Y包含值。在函数式语言中,例如Scala,这可以实现为X.zip(Y).sortWith((a,b)=> a._1 <b._1).map(a => a._2)

© www.soinside.com 2019 - 2024. All rights reserved.