溫馨提示×

C#三維數(shù)組如何高效排序

c#
小樊
85
2024-08-05 14:42:14
欄目: 編程語言

對于三維數(shù)組的排序,可以使用Array類的Sort方法結(jié)合自定義的比較器來實現(xiàn)高效排序。以下是一個示例代碼:

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());

        // 輸出排序后的結(jié)果
        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;
    }
}

在上面的示例代碼中,首先定義了一個三維數(shù)組,并使用Array類的Sort方法對其進行排序。同時,還定義了一個自定義的比較器ThreeDimensionalArrayComparer,用于比較三維數(shù)組的元素大小。最后,輸出排序后的結(jié)果。

0