私は数年間プログラミングのクラスを行っていないので、初心者の間違い/何かをする方法を許してください. 未来への提案が欲しい。以下のコードでは、2 つの配列 (既にソート済み) の値をチェックし、それらを組み合わせた配列に入れようとしています。私の解決策は、非効率的/ずさんですが、for ループを使用して各配列の j のインデックスの内容を比較し、低い値を結合配列のインデックス 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 . . .
経験の浅い私の考えでは、ソートの実装は良さそうに見えるので、なぜこの悪い出力が得られるのかわかりません。アドバイスは素晴らしいでしょう。