Реализовать сортировку массива по возрастанию - C#

Узнай цену своей работы

Формулировка задачи:

Ребята помоги починить сортировку по возрастанию. Начал задавать массивы рандомно, сломалась сортировка. Помогите поправить код, чтобы сортировка заработала.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace TaskOne
{
    class Program
    {
        public static void Main()
        {
            Console.Write("Введите количество элементов массива A: ");
            int n = int.Parse(Console.ReadLine());
            Random r = new Random();
            int[] a;
            a = new int[n];
            for (int i = 0; i < n; i++)
            {
                a[i] = r.Next(1, 20);
                Console.Write(a[i] + " \n");
            }
            Console.Write("Введите количество элементов массива B: ");
            int m = int.Parse(Console.ReadLine());
            Random t = new Random();
            int[] b;
            b = new int[m];
            for (int i = 0; i < n; i++)
            {
                b[i] = t.Next(1, 19);
                Console.Write(b[i]);
                Console.Write("\n");
            }
            foreach (int i in Union(a, b))
            Console.WriteLine(i);
            Console.ReadKey();
        }
 
        public static int[] Union(int[] a, int[] b)
        {
            if (a == null || b == null)
                throw new ArgumentNullException();
 
            int[] result = new int[a.Length + b.Length];
 
            for (int i = 0, j = 0, k = 0; ; k++)
                if (i < a.Length && j < b.Length)
                    result[k] = a[i] < b[j] ? a[i++] : b[j++];
                else if (i < a.Length)
                    result[k] = a[i++];
                else if (j < b.Length)
                    result[k] = b[j++];
                else break;
 
            return result;
        }
    }
}

Решение задачи: «Реализовать сортировку массива по возрастанию»

textual
Листинг программы
namespace TaskOne
{
    class Program
    {
        public static void Main()
        {
            Console.Write("Введите количество элементов массива A: ");
            int n = int.Parse(Console.ReadLine());
            Random r = new Random();
            int[] a;
            a = new int[n];
            for (int i = 0; i < n; i++)
            {
                a[i] = r.Next(1, 20);
                Console.Write(a[i] + " \n");
            }
            Console.Write("Введите количество элементов массива B: ");
            int m = int.Parse(Console.ReadLine());
            Random t = new Random();
            int[] b;
            b = new int[m];
            for (int i = 0; i < n; i++)
            {
                b[i] = t.Next(1, 15);
                Console.Write(b[i]);
                Console.Write("\n");
            }
            var unionArray = Union(a, b);
            Array.Sort(unionArray);
            foreach (int i in unionArray)
            Console.WriteLine(i);
            Console.ReadKey();
        }
 
        public static int[] Union(int[] a, int[] b)
        {
            if (a == null || b == null)
                throw new ArgumentNullException();
 
            int[] result = new int[a.Length + b.Length];
 
            for (int i = 0, j = 0, k = 0; ; k++)
                if (i < a.Length && j < b.Length)
                    result[k] = a[i] < b[j] ? a[i++] : b[j++];
                else if (i < a.Length)
                    result[k] = a[i++];
                else if (j < b.Length)
                    result[k] = b[j++];
                else break;
 
            return result;
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы