Сортировка двумерного массива - C# (179319)

Узнай цену своей работы

Формулировка задачи:

Как отсортировать массив например по 4 столбцу?

Решение задачи: «Сортировка двумерного массива»

textual
Листинг программы
int[,] arr; // Массив для сортировки
int columnIdx = 4; // Колонка по которой сортируем 
 
// Переносим данные колонки, по которой нужно выполнить сортировку, в отдельный массив
int[] columnValues = new int[arr.GetLength(0)];
int[] valuesIndexes = new int[arr.GetLength(0)]; 
for (int i=0; i<arr.GetLength(0); i++)
{
    columnValues[i] = arr[i,columnIdx];
    valuesIndexes[i] = i; 
}
// Сортируем массив чтобы получить индексы для перестановки
Array.Sort(columnValues, valuesIndexes);
 
// Переставляем элементы в соответствии с valuesIndexes
for (int idx1=0; idx1<valuesIndexes.Length; idx1++)
{
    int idx2 = valuesIndexes[idx1]; 
    if (idx1 == idx2) continue;
    
    for (int j=0; j<arr.GetLength(1); j++)
    {
        int temp = arr[idx1, j];
        arr[idx1,j] = arr[idx2,j];
        arr[idx2,j] = temp;
    }
    
    int tempIdx = valuesIndexes[idx1];
    valuesIndexes[idx1] = idx1;
    valuesIndexes[tempIdx] = tempIdx;
}

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


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

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

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