在与其他数组进行比较后交换数组元素的最有效方法

时间:2017-07-23 09:39:54

标签: arrays algorithm

我们说我们有两个数组: 数组a1和数组a2。

' A1'和' a2'两者具有相似的大小和相同的元素,但元素不会以相同的顺序出现。

最有效的方法是比较两个阵列并找出使阵列所需的最小交换次数' a1'与' a2'?

的顺序相同

例如:

{{1}}

因此,所需的最小交换次数为:3

分步骤:

交换1:a1 [0]< - > A1 [1]

交换2:a1 [1]< - > A1 [2]

交换3:a1 [3]< - > A1 [4]

所以,最后a1将包含{2,3,1,5,4}

1 个答案:

答案 0 :(得分:0)

int numofchanges = 0;
for(int i = 0; i < sizeOfArrays; i++)
{
    int arr3[] = arr1;
    for(int n = 0; n < sizeOfArrays; n++)
    {
         arr3[i] = arr1[n];
         if(arr3[i] == arr2[i])
         {
             int tmp = arr1[i];
             arr1[i] = arr1[n];
             arr1[n] = tmp;
             numofchanges++;
         }
    }
}

WARRNING 这不会运行就像伪代码

变量numofchanges将保存更改次数,arr1现在将为arr2

我希望这很有帮助