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

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

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

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

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

textual
Листинг программы
  1. int[,] arr; // Массив для сортировки
  2. int columnIdx = 4; // Колонка по которой сортируем
  3.  
  4. // Переносим данные колонки, по которой нужно выполнить сортировку, в отдельный массив
  5. int[] columnValues = new int[arr.GetLength(0)];
  6. int[] valuesIndexes = new int[arr.GetLength(0)];
  7. for (int i=0; i<arr.GetLength(0); i++)
  8. {
  9.     columnValues[i] = arr[i,columnIdx];
  10.     valuesIndexes[i] = i;
  11. }
  12. // Сортируем массив чтобы получить индексы для перестановки
  13. Array.Sort(columnValues, valuesIndexes);
  14.  
  15. // Переставляем элементы в соответствии с valuesIndexes
  16. for (int idx1=0; idx1<valuesIndexes.Length; idx1++)
  17. {
  18.     int idx2 = valuesIndexes[idx1];
  19.     if (idx1 == idx2) continue;
  20.    
  21.     for (int j=0; j<arr.GetLength(1); j++)
  22.     {
  23.         int temp = arr[idx1, j];
  24.         arr[idx1,j] = arr[idx2,j];
  25.         arr[idx2,j] = temp;
  26.     }
  27.    
  28.     int tempIdx = valuesIndexes[idx1];
  29.     valuesIndexes[idx1] = idx1;
  30.     valuesIndexes[tempIdx] = tempIdx;
  31. }

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


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

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

6   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы