我有两个 int 数组 *start 和 *end,它们的大小可能是 500 万。*start 存储边的起始节点编号,*end 存储结束节点编号。现在我想以升序方式对 *start 进行排序并存储新的排序方案,就像在排序之前一样:
start[0] = 5
start[1] = 7
start[2] = 8
start[3] = 1
start[4] = 4
排序后变成
start[0] = 1
start[1] = 4
start[2] = 5
start[3] = 7
start[4] = 8
我还想存储新的订购方案“3 4 0 1 2”。我想存储这个新的排序方案的原因是我需要在重新排列 *end 时使用它。C 库中有一个函数 qsort() 但它只能完成排序工作但不存储排序方案。有没有其他功能可以两者兼得?或者如何自己编写一个函数?非常感谢。