Как объединить два отсортированных массива? - C#
Формулировка задачи:
int[] MyArr1 = new int[10];
int[] MyArr2 = new int[10];
for (int i = 0; i < length; i++)
{
}
int c;
for (int i = 0; i < MyArr1.Length - 1; i++) // i - номер прохода
{
for (int j = 0; j < MyArr1.Length - 1; j++) // внутренний цикл прохода
{
if (MyArr1[j + 1] < MyArr1[j])
{
c = MyArr1[j + 1];
MyArr1[j + 1] = MyArr1[j];
MyArr1[j] = c;
}
}
}
for (int i = 0; i < MyArr2.Length - 1; i++) // i - номер прохода
{
for (int j = 0; j < MyArr2.Length - 1; j++) // внутренний цикл прохода
{
if (MyArr2[j + 1] < MyArr2[j])
{
c = MyArr2[j + 1];
MyArr2[j + 1] = MyArr2[j];
MyArr2[j] = c;
}
}
}
for (int i = 0; i < MyArr1.Length; i++)
{
Console.Write(MyArr1[i]);
Console.Write(" ");
}
for (int i = 0; i < MyArr2.Length; i++)
{
Console.Write(MyArr2[i]);
Console.Write(" ");
}Решение задачи: «Как объединить два отсортированных массива?»
textual
Листинг программы
int i = 0, j = 0, k = 0, len = Math.Min(MyArr1.Length, MyArr2.Length); int[] MyArr3 = new int[MyArr1.Length + MyArr2.Length]; while (k < len) MyArr3[k++] = MyArr1[i] < MyArr2[j] ? MyArr1[i++] : MyArr2[j++]; while (i < MyArr1.Length) MyArr3[k++] = MyArr1[i++]; while (j < MyArr2.Length) MyArr3[k++] = MyArr2[j++];