С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
1 / 1 / 0
Регистрация: 04.02.2016
Сообщений: 102
1

Получить упорядоченный по неубыванию массив методом слияния двух упорядоченных по невозрастанию массивов

30.04.2016, 17:06. Показов 2494. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Создайте консольное приложение. Опишите массив и выполните его сортировку:
Получить упорядоченный по не убыванию массив методом слияния двух упорядоченных по не возрастанию массивов.
Помогите с этой задачкой на си шарпе
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.04.2016, 17:06
Ответы с готовыми решениями:

Массив: Из двух упорядоченных по невозрастанию массивов А(n) и В(n) получить путем слияния упорядоченный по убыванию массив С
Из двух упорядоченных по невозрастанию массивов А(n) и В(n) получить путем слияния упорядоченный по...

Получить упорядоченный по не возрастанию массив методом слияния двух упорядоченных по не убыванию массивов
Заданы от одного до трех числовых массивов. Составить программу, которая вводит и печатает исходные...

Из двух упорядоченных массивов получить путем слияния упорядоченный массив C
ЗАДАЧА. Из двух упорядоченных массивов по не возрастанию массивов A(m) и B(n) получить путем...

Получить из двух упорядоченных массивов путем слияния упорядоченный по возрастанию массив
Получить из них путем слияния упорядоченный по возрастанию массив С; совпадающие элементы...

12
Эксперт .NET
17792 / 12943 / 3381
Регистрация: 17.09.2011
Сообщений: 21,224
30.04.2016, 18:26 2
Цитата Сообщение от Sveta Bon Посмотреть сообщение
Получить упорядоченный по не убыванию массив методом слияния двух упорядоченных по не возрастанию массивов.
Яйца бы оторвать тому, кто такую формулировку придумал.
Минут пять втыкал.

C#
1
2
3
4
5
6
7
8
9
10
11
T[] Merge<T>(T[] a, T[] b) where T : IComparable<T>
{
   T[] c = new T[a.Length + b.Length];
 
   int i = 0, j = 0, k = 0;
   while (i < a.Length && j < b.Length) c[k++] = a[i].CompareTo(b.Length) < 0 ? a[i++] : b[j++];
   while (i < a.Length) c[k++] = a[i++];
   while (j < b.Length) c[k++] = b[j++];
 
   return c;
}
Не знаю, правильно ли понял.
Если не так — поправьте.
3
baliar
30.04.2016, 20:00
  #3

Не по теме:

У меня в последнее время стойкое ощущение троллинга... Странные формулировки, несуразные ошибки. Только кому это надо - так троллить. Не верю...

0
Эксперт .NET
17792 / 12943 / 3381
Регистрация: 17.09.2011
Сообщений: 21,224
01.05.2016, 01:28 4
Лучший ответ Сообщение было отмечено kolorotur как решение

Решение

Цитата Сообщение от baliar Посмотреть сообщение
У меня в последнее время стойкое ощущение троллинга... Странные формулировки, несуразные ошибки.
Да какой-то идиот просто мозги загаживает студентам такими определениями.
А потом из них вырастают специалисты, которые в программы лепят чекбоксы вида "откючить скрытие файлов".

Всё-таки задачу неправильно понял, да еще и банальный баг в код забрался.

Цитата Сообщение от Sveta Bon Посмотреть сообщение
Получить упорядоченный по не убыванию массив
По не убыванию = по возрастанию

Цитата Сообщение от Sveta Bon Посмотреть сообщение
методом слияния двух упорядоченных по не возрастанию массивов.
По не возрастанию = по убыванию.

Значит на входе имеются два массива, отсортированные по убыванию, из них надо получить один массив, отсортированный по возрастанию:
C#
1
2
3
4
5
6
7
8
9
10
11
T[] Merge<T>(T[] a, T[] b) where T : IComparable<T>
{
   T[] c = new T[a.Length + b.Length];
 
   int i = a.Length - 1, j = b.Length - 1, k = 0;
   while (i >= 0 && j >= 0) c[k++] = a[i].CompareTo(b[j]) < 0 ? a[i--] : b[j--];
   while (i >= 0) c[k++] = a[i--];
   while (j >= 0) c[k++] = b[j--];
 
   return c;
}
1
1 / 1 / 0
Регистрация: 04.02.2016
Сообщений: 102
01.05.2016, 20:38  [ТС] 5
kolorotur, спасибо Вам большое. С праздником!
0
10 / 10 / 3
Регистрация: 28.04.2016
Сообщений: 236
01.05.2016, 21:58 6
Цитата Сообщение от kolorotur Посмотреть сообщение
Да какой-то идиот просто мозги загаживает студентам такими определениями.
А потом из них вырастают специалисты, которые в программы лепят чекбоксы вида "откючить скрытие файлов".

Не по теме:

А я завидую. Потому что кодинг для меня только сейчас настал. И то - хобби.
В универе правда учился не по электронной части. А по станкам и железкам.
И был там у нас паскаль. Турбо. Под дос. И максимум линейная алгебра чуток. i j ...Двумерные массивы.
И всё. И более ничего.


Кликните здесь для просмотра всего текста

Не по теме:

А другие люди, в те 90-е годы, тогда просто искали то,что только под руку попадет - иностранные книги, наши книги по эвм, и нашим процессорам, потом описание 386 на английском, чудом найденное у кого-то в нии на компе, в текстовом файле. И корпели и сами додумывали, ночами, забив на личную жизнь почти и на пиво.
Но потом из самых упорных получились касперские, даниловы и подобное.
А сейчас у них видители C# в универе! Халява вообще! Паттерны, куча литературы, стиль программирования, слои абстракции, ООП, коллекци, биндинг,CLR, управляемый код, сборщик муссора. Тонны литературы на русском от лучших авторов из америки, ИНТЕРНЕТ!
И у них вопросы возникают в стиле "решите мне задачу, я просто хочу диплом, что бы улицы не подметать. меня папа к себе в минестерство устроит". Блин!!!
Сам я кодить стал только месяц! Всего лишь месяц. И то, задаю конкретные вопросы, по примеру, в аспекте "что куда попадает, куда ведет ссылка, где стек и как лучше понимать MSDN!!!"
Я пупею с народа! Неужели не хочется понимать!! Понимать как и что работает. Ведь будешь понимать кодинг, будешь ходить на работу как на праздник. Ты будешь профи. И если любой начальничег по блату боится кому то не подмазать, то ТЫ, специалист, всегда будешь нужен, тебе везде дорога! Потому что для спецов (Неважно, каких, токарь это, пилот или кодер) всегда везде СРОЧНО ТРЕБУЕТСЯ на работу.

А по блату - всегда везде на работе требуется "Как бы его подставить и слить" И уж точно СРОЧНО НЕ ТРЕБУЕТСЯ начальнег-дурачок.

На мое место (я не кодер на работе), нет претендетов. Не ждут 1000 человек за воротами - потому что всю жизнь учусь. учусь, чего то изучаю.. Повышаю уровень, и замыкаю на себя много сложной работы.

А на место дурака, всегда за воротами 1000 других дураков стоят на коленях перед работодателем с дипломами полученными списыванием.

А кому нужны очень большие деньги - шлиб в бизнес, зачем эти корочки универские ? Нормальный человек если не хочет быть спецом, но хочет зарабоать, будет тогда создавать свое дело. С ИП начнет, естественно.
ух..наболело.

0
1 / 1 / 0
Регистрация: 04.02.2016
Сообщений: 102
02.05.2016, 13:13  [ТС] 7
kolorotur, код не работает((
0
Эксперт .NET
17792 / 12943 / 3381
Регистрация: 17.09.2011
Сообщений: 21,224
02.05.2016, 13:55 8
Цитата Сообщение от Sveta Bon Посмотреть сообщение
код не работает
Только что проверил — работает.
0
1 / 1 / 0
Регистрация: 04.02.2016
Сообщений: 102
03.05.2016, 12:52  [ТС] 9
kolorotur, можете весь код полностью кинуть?? пожалуйста

Добавлено через 14 часов 17 минут
kolorotur, большая просьба. Могли бы вы весь полностью код кинуть, а то не работает
0
Эксперт .NET
17792 / 12943 / 3381
Регистрация: 17.09.2011
Сообщений: 21,224
03.05.2016, 14:28 10
Sveta Bon, держите:

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
using System;
using static System.Console;
 
namespace Lab
{
    class Program
    {
        static readonly Random rand = new Random();
 
        static void Main()
        {
            var arr1 = GenerateRandomDescendingArray(0, 100, rand.Next(10, 20));
            var arr2 = GenerateRandomDescendingArray(50, 150, rand.Next(5, 25));
            var arr3 = Merge(arr1, arr2);
 
            Func<int[], string> join = arr => string.Join(", ", arr);
            WriteLine($"Первый массив: {join(arr1)}");
            WriteLine($"Второй массив: {join(arr2)}");
            WriteLine($"Третий массив: {join(arr3)}");
 
            ReadLine();
        }
 
        static int[] GenerateRandomDescendingArray(int min, int max, int size)
        {
            if (size < 0) throw new ArgumentException(nameof(size));
 
            var array = new int[size];
            for (int i = 0; i < array.Length; i++)
                array[i] = rand.Next(min, max);
 
            Array.Sort(array, (x, y) => -x.CompareTo(y));
 
            return array;
        }
 
        static T[] Merge<T>(T[] a, T[] b) where T : IComparable<T>
        {
            T[] c = new T[a.Length + b.Length];
 
            int i = a.Length - 1, j = b.Length - 1, k = 0;
            while (i >= 0 && j >= 0) c[k++] = a[i].CompareTo(b[j]) < 0 ? a[i--] : b[j--];
            while (i >= 0) c[k++] = a[i--];
            while (j >= 0) c[k++] = b[j--];
 
            return c;
        }
    }
}
1
1 / 1 / 0
Регистрация: 04.02.2016
Сообщений: 102
03.05.2016, 16:05  [ТС] 11
kolorotur, что-то не работает . ругается на nameof ?
можете консольный вывод скинуть, пожалуйста? это для отчета
0
Эксперт .NET
17792 / 12943 / 3381
Регистрация: 17.09.2011
Сообщений: 21,224
03.05.2016, 16:26 12
Цитата Сообщение от Sveta Bon Посмотреть сообщение
не работает . ругается на nameof
C# 6.0, Visual Studio 2015.

Цитата Сообщение от Sveta Bon Посмотреть сообщение
можете консольный вывод скинуть, пожалуйста?
У меня в консоли русский текст не отображается, будут вопросительные знаки.
0
1 / 1 / 0
Регистрация: 04.02.2016
Сообщений: 102
03.05.2016, 20:39  [ТС] 13
kolorotur, скиньте пожалуйста и такой
0
03.05.2016, 20:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.05.2016, 20:39
Помогаю со студенческими работами здесь

Сформировать новый массив, упорядоченный по неубыванию, из двух массивов-параметров, уже упорядоченных по неубыванию
Функция, формирующая новый массив, упорядоченный по неубыванию, из двух массивов-параметров, уже...

Создать новый массив, упорядоченный по неубыванию из двух упорядоченных массивов
.........Функция, формирующая новый массив, упорядоченный по неубывнию, из двух...

Получить за один просмотр упорядоченный массив С(К), путем слияния упорядоченных массивов A(N) и B(M)
У меня такой вопрос возник: как складывать одномерные массивы разных размеров? В интернете пишут...

Образовать из двух упорядоченных по неубыванию массивов один, упорядоченный по неубыванию
Даны два числа m и n, и два упорядоченных по неубыванию массива A≤A≤...≤A и...


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

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