public static void Sort <T>(T[] array) where T : IComparable
 {
     for (int i = 0; i < array.Length; i++)
     {
         int j = i;
         while (j >= 1 && array[j].CompareTo(array[j - 1]) < 0)
         {
             ArrayService.Swap(array, j, (j - 1));
             j--;
         }
     }
 }
 public static void Sort <T>(T[] array) where T : IComparable
 {
     for (int i = array.Length - 1; i > 0; i--)
     {
         for (int j = 0; j < i; j++)
         {
             if (array[j].CompareTo(array[j + 1]) > 0)
             {
                 ArrayService.Swap(array, j, (j + 1));
             }
         }
     }
 }
 public static void Sort <T>(T[] array) where T : IComparable
 {
     for (int i = (array.Length - 1); i > 0; i--)
     {
         T   maxValue      = array[i];
         int maxValueIndex = i;
         int j;
         for (j = 0; j < i; j++)
         {
             if (array[j].CompareTo(maxValue) > 0)
             {
                 maxValue      = array[j];
                 maxValueIndex = j;
             }
         }
         ArrayService.Swap(array, i, maxValueIndex);
     }
 }
Esempio n. 4
0
        public static void RecursiveSort <T>(T[] array, int ini, int fin) where T : IComparable
        {
            if (ini >= fin)
            {
                return;
            }

            int pivotIndex = ini;
            int i          = ini + 1;
            int j          = fin;

            while (i < j)
            {
                while (array[j].CompareTo(array[pivotIndex]) > 0 && j > ini)
                {
                    j--;
                }

                while (array[i].CompareTo(array[pivotIndex]) < 0 && i < fin)
                {
                    i++;
                }

                if (i != j && i <= j)
                {
                    ArrayService.Swap(array, i, j);
                }
            }
            if (array[pivotIndex].CompareTo(array[j]) > 0)
            {
                ArrayService.Swap(array, j, pivotIndex);
            }

            int newFin = j - 1;
            int newIni = j + 1;

            RecursiveSort(array, ini, newFin);
            RecursiveSort(array, newIni, fin);
        }