У меня есть матрица из 50 строк и 2 столбца, и я хочу отсортировать их на основе сравнение значения второго столбца, поданного. Вот что я имею в виду, если моя матрица, как:сортировка матрицы на основе сравнения столбцов
[00][01]
[10][11]
[20][21]
[30][31]
[40][41]
[50][51]
Я хочу сравнить [01] и [11], и если [01] меньше, чем [11] Я хочу обменять всю вторую строку с первой строкой , чтобы быть, как это (например):
[10][11]
[00][01]
[20][21]
[30][31]
[40][41]
[50][51]
Я попытался с помощью C# и придумал этот алгоритм, но он не работает:
int temp1, temp2;
for (int i = 0; i < 50; i++)
{
for (int j = i + 1; j < 2; j++)
{
if (rating[i, j] < rating[i + 1, j])
{
temp1 = rating[i + 1, j - 1];
temp2 = rating[i + 1, j];
rating[i + 1, j - 1] = rating[i, j - 1];
rating[i + 1, j] = rating[i, j];
rating[i, j - 1] = temp1;
rating[i, j] = temp2;
}
}
}
Может кто-нибудь сказать мне ключ к тренировке этой проблема или если у вас есть ответ в c, C++ или другом языке пожалуйста, поделитесь им с нами.
спасибо.
Частично это работало. См. Изображение: http://im41.gulfup.com/TrGUn.bmp Где я указал красным цветом, второй столбец имеет номер 5, который должен быть самым высоким. Должно быть так: .. 5 .. 5 .. 5 .. 5 .. 4 .. 4 .. 4 .......... и так далее. –
Я отредактировал небольшую ошибку в коде. –
полный код настолько длинный и сложный, и только это требование остается для завершения реализации. –