假设我有一个包含唯一随机数的数组(其中数字的可能范围很小,为 0 到 20)。例如:
[6, 3, 11, 9, 4, 5]
如何将以下数组转换为这样的:
[3, 0, 5, 4, 1, 2]
第二个数组从 0 开始并以 (array.Length-1) 结束,但位置与第一个数组中的大小有关。
如何在 C/C++/C# 中以有效的方式实现这一点?(对方法更感兴趣)
我只举了一个例子。它可以是任何东西:
[7, 10, 0, 19, 50, 33, 45, 100]
[1, 2, 0, 3, 6, 4, 5, 7]
数组 A 中的最小数是数组 B 中的 0。数组 A 中的最大数是数组 B 中的 (array.Length-1)。数组 A 可以是完全随机的(只是它永远不会包含两个或多个相同的数字),但数组 A必须以与数组 A 中相同的顺序包含从 0 到 array.Length-1) 的所有数字。