C#三维数组如何高效排序

avatar
作者
猴君
阅读量:0

对于三维数组的排序,可以使用Array类的Sort方法结合自定义的比较器来实现高效排序。以下是一个示例代码:

using System;  class Program {     static void Main()     {         int[,,] array = new int[2, 3, 4]         {             {                 {5, 3, 2, 7},                 {1, 9, 4, 8},                 {6, 0, 10, 12}             },             {                 {11, 13, 15, 14},                 {16, 17, 18, 19},                 {20, 21, 22, 23}             }         };          Array.Sort(array, new ThreeDimensionalArrayComparer());          // 输出排序后的结果         for (int i = 0; i < array.GetLength(0); i++)         {             for (int j = 0; j < array.GetLength(1); j++)             {                 for (int k = 0; k < array.GetLength(2); k++)                 {                     Console.Write(array[i, j, k] + " ");                 }                 Console.WriteLine();             }             Console.WriteLine();         }     } }  class ThreeDimensionalArrayComparer : IComparer {     public int Compare(object x, object y)     {         int[,,] array1 = (int[,,])x;         int[,,] array2 = (int[,,])y;          for (int i = 0; i < array1.GetLength(0); i++)         {             for (int j = 0; j < array1.GetLength(1); j++)             {                 for (int k = 0; k < array1.GetLength(2); k++)                 {                     if (array1[i, j, k] != array2[i, j, k])                     {                         return array1[i, j, k].CompareTo(array2[i, j, k]);                     }                 }             }         }          return 0;     } } 

在上面的示例代码中,首先定义了一个三维数组,并使用Array类的Sort方法对其进行排序。同时,还定义了一个自定义的比较器ThreeDimensionalArrayComparer,用于比较三维数组的元素大小。最后,输出排序后的结果。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!