我正在尝试声明一个函数sort : real list -> int list * real list
,它使用mergesort对列表进行排序,并返回一个int列表,其中包含预先排序的各个数字的原始位置。
也许这个例子会让人们更容易理解:
sort [5.4,7.2,1.5,9.6] = ([2,0,1,3], [1.5,5.4,7.2,9.6]
现在对列表进行排序非常简单,但我很难弄清楚如何让它记住原始位置,然后用它制作一个int列表。
帮助?
答案 0 :(得分:1)
ListPair.unzip
将已排序的对列表转换为一对列表。