gpt4 book ai didi

c++ - 将两个数组排序为组合数组

转载 作者:太空狗 更新时间:2023-10-29 20:05:34 24 4
gpt4 key购买 nike

我已经好几年没有上过任何编程课了,所以请原谅任何初学者的错误/做某事的方法。我喜欢对 future 的建议。使用下面的代码,我试图检查两个数组(已经排序)的值并将它们放入组合数组中。我的解决方案,无论多么低效/草率,是使用 for 循环比较每个数组在 j 处的索引的内容,然后将较低的值分配给 combinedArray 的索引 i,将较高的值分配给索引 i+1。我将 i 增加 2 以避免覆盖前一个循环的索引。

int sortedArray1 [5] = {11, 33, 55, 77, 99};
int sortedArray2 [5] = {22, 44, 66, 88, 00};
combinedSize = 10;
int *combinedArray;
combinedArray = new int[combinedSize];
for(int i = 0; i <= combinedSize; i+=2)
{
for(int j = 0; j <= 5; j++)
{
if(sortedArray1[j] < sortedArray2[j])
{
combinedArray[i] = sortedArray1[j];
combinedArray[i+1] = sortedArray2[j];
}
else if(sortedArray1[j] > sortedArray2[j])
{
combinedArray[i] = sortedArray2[j];
combinedArray[i+1] = sortedArray1[j];
}
else if(sortedArray1[j] = sortedArray2[j])
{
combinedArray[i] = sortedArray1[j];
combinedArray[i+1] = sortedArray2[j];
}
}
}

for(int i = 0; i < combinedSize; i++)
{
cout << combinedArray[i];
cout << " ";
}

我的结果是这样的

Sorted Array 1 contents: 11 33 55 77 99
Sorted Array 2 contents: 0 22 44 66 88
5 77 5 77 5 77 5 77 5 77 Press any key to continue . . .

在我经验不足的情况下,排序的实现看起来不错,所以我不确定为什么会得到这么糟糕的输出。建议会很棒。

最佳答案

这个怎么样:

int i=0,j=0,k=0;
while(i<5 && j<5)
{
if(sortedArray1[i] < sortedArray2[j])
{
combinedArray[k]=sortedArray1[i];
i++;
}
else
{
combinedArray[k]=sortedArray2[j];
j++;
}
k++;
}
while(i<5)
{
combinedArray[k]=sortedArray1[i];
i++;k++;
}
while(j<5)
{
combinedArray[k]=sortedArray2[j];
j++; k++;

}

关于c++ - 将两个数组排序为组合数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12549603/

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