Реализовать сортировку массива по возрастанию - 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; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д