using System; class SortDemo{ static void BubbleSort(T[] a) where T: IComparable{ int n = a.Length; for (int i = 0; i < n - 1; ++i) for (int j = n - 1; j > i; --j) if (a[j-1].CompareTo(a[j]) > 0) Swap(ref a[j-1], ref a[j]); } public static void Swap(ref T a, ref T b){ T temp; temp = a; a = b; b = temp; } public static void ReportArray(T[] a){ foreach(T t in a) Console.Write("{0,4}", t); Console.WriteLine(); } public static void Main(){ double[] da = new double[]{5.7, 3.0, 6.9, -5,3, 0.3}; Die[] dia = new Die[]{new Die(), new Die(), new Die(), new Die(), new Die(), new Die()}; ReportArray(da); BubbleSort(da); ReportArray(da); Console.WriteLine(); ReportArray(dia); BubbleSort(dia); ReportArray(dia); Console.WriteLine(); // Equivalent: ReportArray(da); BubbleSort(da); ReportArray(da); Console.WriteLine(); ReportArray(dia); BubbleSort(dia); ReportArray(dia); } }