Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 0
Регистрация: 28.11.2013
Сообщений: 79
.NET 2.x

Два массива объединить в один методом слияния с сортировкой по возрастанию

19.10.2014, 19:17. Показов 931. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, как реализовать на с# в веб сервисе xml: Два массива в один методом слияния с сортировкой по возрастанию. Массивы могут быть и с разной длинной. Нашел как на с# только, а как поменять для веб сервисов?
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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.10.2014, 19:17
Ответы с готовыми решениями:

Объединить два массива в один
Имеется два строковых массива. Требуется их объединить в один, но чтобы между элементами ставилось двоеточие. Например: &quot;abc&quot; -...

Объединить два упорядоченных целочисленных массива в один упорядоченный массив
Даны два упорядоченных массива целых чисел М1 и М2. Объединить их в один упоря-доченный массив. Рассмот¬реть случаи, когда массивы М1 и М2...

Объединить два массива в один, включив второй массив между k-м и (k+1)-м элементами первого
Заданы два одномерных массива действительных чисел различных размеров. Объединить их в один массив, включив второй массив между k-м и...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.10.2014, 19:17
Помогаю со студенческими работами здесь

Объединить два массива в один, включив второй массив между k-м и (k+1)-м элементами первого
Даны два одномерных массива с различным количеством элементов и натуральное число k. Объединить их в один массив, включив второй массив...

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

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

Объединить два упорядоченных по возрастанию массива в один. Нужны комментарии
#include &lt;iostream&gt; #include&lt;stdio.h&gt; #include&lt;conio.h&gt; /* run this program using the console pauser or add your own getch,...

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru