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

Слияние двух массивов

19.12.2016, 12:52. Показов 2031. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пользователем вводится два отсортированных в порядке возрастания одномерных массива. Выполнить их слияния в один массив, элементы которого отсортированы также по возрастанию
Можно готовый код пожалуйста, сам дуб дубом в этом
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.12.2016, 12:52
Ответы с готовыми решениями:

Слияние двух массивов
Начинаю изучать с# столкнулся в домашнем задании с этим....Необходимо совместить 2 массива. Как...

Слияние двух массивов отсортированных по убыванию
Нужно написать прогу: Даны два массива. Массив А состоит из N элементов , массив В состоит из М...

Слияние двух массивов введённых в консоли после их сортировки по убыванию и возрастанию
Даны два массива. Массив А состоит из N элементов и отсортирован по возрастанию. Массив В состоит...

Слияние двух упорядоченных по убыванию массивов в один, упорядоченный по убыванию
Даны два упорядоченных по убыванию массива W и G. Получите из них путем слияния упорядоченный по...

3
19 / 19 / 9
Регистрация: 14.09.2016
Сообщений: 94
Записей в блоге: 1
19.12.2016, 13:48 2
quot1n,
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Sort
{
    class Program
    {
        public static List<int> merge(List<int> a, List<int> b)
        //функция сливает два вектора
        {
            List<int> c = new List<int>();
            //количество использованных вершин
            int kol1 = 0;//в векторе а
            int kol2 = 0;//в векторе b
            //заполним массив c
            for (int i = 0; i < a.Count + b.Count; i++)
            {
                //если мы уже полностью использовали вектора а,
                //то нам осталось дописать элементы вектора b
                if (kol1 == a.Count)
                {
                    c.Add(b[kol2]);
                    kol2++;
                    continue;
                }
                //наоборот
                if(kol2 == b.Count)
                {
                    c.Add(a[kol1]);
                    kol1++;
                    continue;
                }
                //так как наши вектора еще не полностью
                //использованы, то нужно сравнить какое
                //значение ставить на следующее место
                if (a[kol1] <=b [kol2])
                {
                    c.Add(a[kol1]);
                    kol1++;
                }
                else
                {
                    c.Add(b[kol2]);
                    kol2++;
                }
            }
            return c;
        }
 
        //функция сортирует вектор
        public static List<int> merge_sort(List<int> a)
        {
            //если размер вектора меньше 1,
            //то он отсортирован
            if (a.Count <= 1)
                return a;
            List<int> b = new List<int>();
            List<int> c = new List<int>();
            b = a.GetRange(0, a.Count / 2);
            //Console.WriteLine("vector b: ");
            //foreach (var pr in b)
            //{
            //    Console.Write(pr);
            //    Console.Write(' ');
            //}
            //Console.WriteLine("\nvector c: ");
            c = a.GetRange(a.Count / 2, a.Count - (a.Count / 2));
            //foreach (var pr in c)
            //{
            //    Console.Write(pr);
            //    Console.Write(' ');
            //}
            //Console.WriteLine();
            return merge(merge_sort(b), merge_sort(c));
        }
        static void Main()
        {
            List<int> a = new List<int>();
            Random gen = new Random();
            for (int i = 0; i < 10; i++)
            {
                a.Add(gen.Next(0,100));
                Console.Write(a[i]);
                Console.Write(' ');
            }
            Console.WriteLine();
            a = merge_sort(a);
            for (int i = 0; i < a.Count; i++)
            {
                Console.Write(a[i]);
                Console.Write(' ');
            }
        }
    }
}
0
309 / 309 / 215
Регистрация: 24.09.2013
Сообщений: 771
19.12.2016, 14:22 3
quot1n,
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
using System;
 
class Program
{
    static void Main()
    {
        int N = 10;
        int[] a = new int[N];
        int[] b = new int[N];
        int[] c = new int[N * 2];
 
        for (int i = 0; i < N; i++)
            a[i] = Int32.Parse(Console.ReadLine());
        for (int i = 0; i < N; i++)
            b[i] = Int32.Parse(Console.ReadLine());
 
        Array.Copy(a, c, N);
        Array.Copy(b, 0, c, N, N);
        Array.Sort(c);
 
        foreach (int i in c)
            Console.Write(i + " ");
        Console.ReadKey();                     
    }
}
1
1494 / 1209 / 821
Регистрация: 29.02.2016
Сообщений: 3,614
19.12.2016, 21:31 4
C#
1
2
3
4
5
6
            // если объединить
            int[] arr1 = { 1, 2, 3, 4 };
            int[] arr2 = { 4, 5, 6, 7, 8 };
            int[] combine = arr1.Concat(arr2).ToArray();
            // если только разные элементы
            int[] union = arr1.Union(arr2).ToArray();
0
19.12.2016, 21:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.12.2016, 21:31
Помогаю со студенческими работами здесь

Слияние массивов C#
Здравствуйте,уважаемые форумчане. Помогите,пожалуйста, с решением задачки,а то даже не знаю с какой...

Слияние 2 массивов
Слияние 2 массивов, чтобы они без сортировки шли по порядку (либо большее к меньшему или меньшее к...

Слияние массивов
Добрый день. Решил задачу, в Visual Studio все прекрасно работает, но когда пытаюсь залить на сайт...

Разработать слияние 2 массивов и отсортировать по возрастанию массив С
Возникла проблема при создании. Даны два массива. А из n элементов отсортирован по возростанию.В...


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

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

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