.NET 4.x Простая сортировка двумерного массива - C#
Формулировка задачи:
Здравствуйте! не могу сделать сортировку двумерного массива. Ввод и вывод я сделала, а саму сортировку не могу. помогите пожалуйста. Вот начало моей программы:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int[,]A; int N; Console.WriteLine("сколько строк?"); N=Convert.ToInt16(Console.ReadLine()); int M; Console.WriteLine("сколько столбцов?"); M=Convert.ToInt16(Console.ReadLine()); A = new int[N, M]; Random r = new Random(); for (int i = 0; i < N; i++) for (int j = 0; j < M; j++) A[i, j] = r.Next(1, 10); for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) Console.Write(A[i, j] + ","); Console.WriteLine(); }; Console.ReadLine(); } } }
Решение задачи: «.NET 4.x Простая сортировка двумерного массива»
textual
Листинг программы
using System; class Program { public static void Main(string[] args) { int rowsCount, colsCount; Console.WriteLine("Число строк:"); rowsCount = int.Parse(Console.ReadLine()); Console.WriteLine("Число столбцов:"); colsCount = int.Parse(Console.ReadLine()); int[,] array = GenerateRandomArray(rowsCount, colsCount); Console.WriteLine("Неупорядоченный массив:"); PrintArray(array); int[] linearArray = ToLinearArray(array); BubbleSort(linearArray); array = ToSquareArray(linearArray, rowsCount, colsCount); Console.WriteLine("Упорядоченный массив:"); PrintArray(array); Console.ReadLine(); } /// <summary> /// Генерация двумерного массива заданного размера, заполненного случайными целыми числами /// </summary> /// <param name="rowsCount">Число строк</param> /// <param name="colsCount">Число столбцов</param> /// <returns>Двумерный массив целых чисел</returns> public static int[,] GenerateRandomArray(int rowsCount, int colsCount) { int[,] result = new int[rowsCount, colsCount]; Random random = new Random(); for (int i = 0; i < rowsCount; i++) for (int j = 0; j < colsCount; j++) result[i, j] = random.Next(); return result; } /// <summary> /// Вывод двумерного массива в консоль /// </summary> /// <param name="array">Двумерный массив целых чисел</param> public static void PrintArray(int[,] array) { int rowsCount = array.GetLength(0), colsCount = array.GetLength(1); for (int i = 0; i < rowsCount; i++) { for (int j = 0; j < colsCount; j++) { Console.Write("{0}\t", array[i,j]); } Console.WriteLine(); } } /// <summary> /// Сортировка массива пузырьком /// </summary> /// <param name="array">Массив целых чисел</param> public static void BubbleSort(int[] array) { for (int i = 0; i < array.Length; i++) for (int j = 0; j < i; j++) { if (array[i] < array[j]) { int swap = array[i]; array[i] = array[j]; array[j] = swap; } } } /// <summary> /// Конвертация двумерного массива в линейный /// </summary> /// <param name="array">Двумерный массив целых чисел</param> /// <returns>Одномерный массив целых чисел</returns> public static int[] ToLinearArray(int[,] array) { int rowsCount = array.GetLength(0), colsCount = array.GetLength(1); int[] result = new int[rowsCount * colsCount]; for (int i = 0; i < rowsCount; i++) { for (int j = 0; j < colsCount; j++) { result[colsCount*i + j] = array[i, j]; } } return result; } /// <summary> /// Конвертация одномерного массива в двумерный /// </summary> /// <param name="array">Одномерный массив целых чисел</param> /// <param name="rowsCount">Требуемое число строк</param> /// <param name="colsCount">Требуемое число столбцов</param> /// <returns>Двумерный массив целых чисел</returns> public static int[,] ToSquareArray(int[] array, int rowsCount, int colsCount) { int[,] result = new int[rowsCount, colsCount]; for (int i = 0; i < rowsCount; i++) { for (int j = 0; j < colsCount; j++) { result[i, j] = colsCount * i + j < array.Length ? array[colsCount * i + j] : default(int); } } return result; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д