Сравнение скорости Jagged и многомерных массивов по скорости

Jagged массивы (ступенчатые, массив массивов) — это массив, элементами которого являются массивы. Элементы такого массива могут быть разной размерности.
Пример:
double[][] jagged = new double[][] 
{
    new double[] {1,2,3,4,5},
    new double[] {1,2},
    new double[] {1,2,3,4}
};
jagged[0][1] = 6.7;

Многомерный массив, в отличие от ступенчатого, не может иметь строки различной размерности.
Пример:
double[,] twoDim = new double[3,6];
twoDim[0,1] = 1.2;

Для сравнения скорости работы таких массивов были использованы тесты матричных операций (1000 итераций, размерность матриц 100х100):
  1. Суммирование матриц;
  2. Вычитание матриц;
  3. Суммирование матрицы с числом;
  4. Вычитание числа из матрицы;
  5. Умножение матрицы на число;
  6. Суммирование всех элементов матрицы;
  7. Применение функции ко всем элементам матрицы;
  8. Поиск максимального элемента в матрице;
  9. Транспонирование матрицы;
  10. Сравнение матриц;
  11. Получение единичной матрицы;
  12. Вычисление минора матрицы;
  13. Копирование матрицы;
  14. Обмен строк;
  15. Обмен столбцов;
  16. Умножение матриц;
  17. Вычисление определителя матрицы;
  18. Вычисление ранга матрицы.

Результаты сравнения на тестах №1-15
Jagged1.png
Результаты сравнения на тестах №16-18
Jagged2.png

Результаты тестов показали, что Jagged массив в среднем работает на 13% быстрее чем многомерный массив. Кроме того, такого рода массивы могут быть не только прямоугольными (как массивы многомерные).
--
автор: Лисицын Антон

Last edited Jan 27, 2012 at 11:11 AM by basph, version 12

Comments

No comments yet.