.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;
    }
}

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


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

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

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