Сортировка двумерного массива по убыванию и возрастанию - C#
Формулировка задачи:
Мне нужно написать программу сортировки массива(по возрастанию и убыванию), что бы можно было выбрать метод сортировки. Написать-написала, но сортирует он не верно, да и сам код получился громоздким. Помогите
namespace массив
{
class Program
{
int[,] a = new int[5,5] ;
public void generalArray()
{
Random r = new Random();
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
a[i,j] = r.Next(1, 10);
}
}
}
public void printArray()
{
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
Console.Write(a[i,j] + " ");
}
Console.WriteLine();
}
}
public void BubbleSort()
{
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
for (int k = i + 1; k < 5; k++)
{
for (int m = j + 1; m < 5; m++)
{
if (a[i,j] > a[k,m])
{
int t = a[i,j];
a[i,j] = a[k,m];
a[k,m] = t;
}
}
}
}
}
}
public void BubbleSortDesc()
{
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
for (int k = i + 1; k <= 5; k++)
{
for (int m = j + 1; m < 5; m++)
{
if (a[i,j] < a[k,m])
{
int t = a[i,j];
a[i,j] = a[k,m];
a[k,m] = t;
}
}
}
}
}
}
static void Main(string[] args)
{
Console.WriteLine("Исходный массив: ");
Program sort = new Program();
sort.generalArray();
sort.printArray();
Console.WriteLine("");
Console.WriteLine("Сортировать массив по убыванию? (y/n)");
bool desc = Console.ReadKey().Key == ConsoleKey.Y;
Console.WriteLine();
sort.printArray();
if (desc)
sort.BubbleSortDesc();
else
sort.BubbleSort();
Console.WriteLine();
sort.printArray();
Console.ReadLine();
}
}
}Решение задачи: «Сортировка двумерного массива по убыванию и возрастанию»
textual
Листинг программы
{
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
for (int k = 0; k < 5; k++)
{
for (int m = 0; m < 5; m++)
{
if (((!i==k)&&(!j==m))&&(a[i,j] > a[k,m]))//
{
int t = a[i,j];
a[i,j] = a[k,m];
a[k,m] = t;
}
}
}
}
}
}