同一维度不同类型的数组运用泛型冒泡排序?

同一维度不同类型的数组运用泛型冒泡排序?

class Program

    {
        static void Main(string[] args)
        {
            string[] a = { "123","456","789"};
            //1.委托解决方案调用
            SortDel.Sort(a, (string c,string b)=> { return c.CompareTo( b); });
            //2.接口解决方案调用
            SortIcom<string>.Sort(a);
        }

    }

同一维度不同类型的数组运用泛型冒泡排序?

    class SortDel
    {
        //1.委托解决方案
       public delegate int comparab<T>(T a,T b);
        public static void Sort<T>(T[] a, comparab<T> del)
        {
            for (int i = 0; i < a.Length; i++)
            {
                for (int j = 0; j < a.Length - 1 - i; j++)
                {
                    if (del(a[j],a[j + 1])<0)
                    {
                        T temp = a[j];
                        a[j] = a[j + 1];
                        a[j + 1] = temp;
                    }
                }
            }
            for (int i = 0; i < a.Length; i++)
            {
                Console.WriteLine(a[i]);
            }
        }

    }

同一维度不同类型的数组运用泛型冒泡排序?

 class SortIcom<T> where T : IComparable
    {
        //2.接口解决方案
        public static void Sort(T[] a)
        {
            for (int i = 0; i < a.Length; i++)
            {
                for (int j = 0; j < a.Length - 1 - i; j++)
                {
                    if ((a[j].CompareTo(a[j + 1]) > 0))
                    {
                        T temp = a[j];
                        a[j] = a[j + 1];
                        a[j + 1] = temp;
                    }
                }
            }
            for (int i = 0; i < a.Length; i++)
            {
                Console.WriteLine(a[i]);
            }
        }
    }