gpt4 book ai didi

c++ - 根据另一个数组中的排序索引重新排序数组

转载 作者:行者123 更新时间:2023-12-01 14:48:24 24 4
gpt4 key购买 nike

我正在做一个二进制基数排序算法分配,并在最后一步遇到问题。从我得到的说明中,我知道我必须做什么,但不知道如何在 C++ 中实现它。为了更好地理解我在问什么,我将举一个例子。假设我们有一个整数数组:

int array[5] = {5, 24, 8, 9, 10}

索引 0 处的值为 5,索引 2 处为 24,等等。
现在假设我将这些索引放在一个数组中并重新排序(在我的情况下,对它们进行排序)
int indices[5] = {3, 4, 0, 1, 2}

我需要做的是,根据这些重新排序的索引,对初始数组重新排序。例如,由于索引 3 现在位于其数组中的索引 0,因此我必须将 9(在我的示例中位于索引 3)移动到其数组中的索引 1。最终的数组看起来像这样:
array[5] = {9, 10, 5, 24, 8}

我不确定这叫什么,所以我很难在网上找到它。有人知道这个问题的答案吗?谢谢!

最佳答案

假设您不必就地执行此操作:

const int len = 5;
int newArray[len];

for(int i=0; i < len; ++i)
{
newArray[i] = array[indices[i]];
}

memcpy(array,newArray,len * sizeof(int));

关于c++ - 根据另一个数组中的排序索引重新排序数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60917343/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com