0 / 0 / 0
Регистрация: 14.06.2016
Сообщений: 11
1

Объединить два упорядоченных целочисленных массива в один упорядоченный массив

14.06.2016, 23:24. Показов 3179. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Даны два упорядоченных массива целых чисел М1 и М2. Объединить их в один упоря-доченный массив. Рассмот¬реть случаи, когда массивы М1 и М2 упорядочены одинаково и когда — по-разному.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.06.2016, 23:24
Ответы с готовыми решениями:

Дано два упорядоченных целочисленных массива. Объединить их в один упорядоченный.
Дано два упорядоченных целочисленных массива. Объединить их в один упорядоченный. помогите...

Объединить два упорядоченных по возрастанию массива в один, также упорядоченный массив
Написать программу, которая объединяет два упорядоченных по возрастанию массива в один, также...

Объединить два упорядоченных по возрастанию массива в один, упорядоченный по убыванию
Здравствуйте, форумчане. Помогите пожалуйста сделать реализацию программы, задача: У меня...

Объединить два упорядоченных по неубыванию списка М1 и М2 в один упорядоченный
Написать программу, содержащую процедуру, которая объединяет два упорядоченных по неубыванию списка...

1
44 / 41 / 44
Регистрация: 08.05.2016
Сообщений: 119
15.06.2016, 03:08 2
Лучший ответ Сообщение было отмечено katusha1996 как решение

Решение

Способ 1: костыльный, но короткий
C#
1
2
3
4
5
int[] a = new int[5], b = new int[7];
int[] c = new int[a.Length + b.Length];
a.CopyTo(c, 0);
b.CopyTo(c, a.Length);
c = c.OrderBy(x => x).ToArray();
Способ 2: как и было задумано
Кода тут побольше будет
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
private static void arrayMerge(string[] args)
{
    int[] a = new int[] { 2, 5, 8, 9, 11, 36, 2567 },
        b = new int[] { -468, -441, -66, -65, -12, -10, 6, 8, 10, 12, 36, 37, 10000 }.Reverse().ToArray();
 
    int len1 = a.Length;
    int len2 = b.Length;
    int[] result = new int[len1 + len2];
 
    int aPos = 0, aInc = 1;
    if (a[len1 - 1] < a[0])
    {
        aPos = len1 - 1;
        aInc = -1;
    }
 
    int bPos = 0, bInc = 1;
    if (b[len1 - 1] < b[0])
    {
        bPos = len2 - 1;
        bInc = -1;
    }
 
    for (int i = 0; i < len1 + len2; i++)
    {
        if (a[aPos] < b[bPos])
        {
            result[i] = a[aPos];
            aPos += aInc;
 
            if (aPos == -1 || aPos == len1)
            {
                while (++i < len1 + len2)
                {
                    result[i] = b[bPos];
                    bPos += bInc;
                }
                break;
            }
        }
        else
        {
            result[i] = b[bPos];
            bPos += bInc;
 
            if (bPos == -1 || bPos == len2)
            {
                while (++i < len1 + len2)
                {
                    result[i] = a[aPos];
                    aPos += aInc;
                }
                break;
            }
        }
    }
}
0
15.06.2016, 03:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.06.2016, 03:08
Помогаю со студенческими работами здесь

Объединить два упорядоченных списка в один, тоже упорядоченный
Program spisoc1; Type spis=^spisoc; spisoc=record inf:integer; link:spis; end;...

Объединить два упорядоченных массива в третий, также упорядоченный
заданы 2 массива A от N и B от N, элементы которых упорядочены по возрастанию, объединить массивы A...

Объединить два массива одного размера в один массив размером 2N, упорядоченный по возрастанию
Требуется объединить два массива A и B одного размера N (N- заданное натуральное число) в один...

Объединить два упорядоченных по неубыванию списка в один упорядоченный по неубыванию
Помогите описать процедуру, которая объединяет два упорядоченных по неубыванию списка X1 и X2 в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru