Сортировка строк по содержанию элементов указанного номера столбца двумерного массива - C#
Формулировка задачи:
Вкратце нужно чтобы массив сортировал примерно так:
Исходный массив:
30 31 3 33
50 51 5 53
10 11 1 13
40 41 4 43
Выходящий массив:
10 11 1 13
30 31 3 33
40 41 4 43
50 51 5 53
Console.WriteLine("Массив №4:");
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
A[i, j] = rnd.Next(-50, 50);
Console.Write("{0}\t", A[i, j]);
}
Console.WriteLine();
}
for (i = 0; i < n; i++)
for (j = 0; j < m; j++)
for (int g = 0; g < m - 1; g++)
if (A[j, g] < A[j, g + 1])
{
int temp = A[j, g];
A[j, g] = A[j, g + 1];
A[j, g + 1] = temp;
}
Console.WriteLine("г) Сортировка строк по значениям элементов указанных по номеру столбца двумерного массива:");
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
Console.Write("{0}\t", A[i, j]);
Console.WriteLine();
}Решение задачи: «Сортировка строк по содержанию элементов указанного номера столбца двумерного массива»
textual
Листинг программы
static void Main(string[] args)
{
int n = 4;
int[,] mass = new int[n, n];
int[] index = new int[n];
int[,] mass1 = new int[n, n];
int[] mass1dim = new int[n];
int строка = 1; // задаем строку
Random rnd = new Random();
for (int i = 0; i < n; i++)
{
index[i] = i;
for (int j = 0; j < n; j++)
mass[i, j] = rnd.Next(50);
}
Array.Copy(mass, 0, mass1, 0, mass.Length);
Console.WriteLine("Начальная состояние ");
print(mass);
// Сортировка по заданной строке
for (int j = 0; j < n; j++)
mass1dim[j] = mass[строка, j];
Array.Sort(mass1dim ,index );
for (int j = 0; j < n ; j++)
for (int g = 0; g < n; g++)
mass[j , g] = mass1[j , index[g]];
Console.WriteLine("Отсортировано по заданной строке {0}", строка + 1);
print(mass);
Console.ReadKey();
}