Exemplo n.º 1
0
        static void QuickSortRecursion(SortingArray array, int left, int right)
        {
            if (left < right)
            {
                int pivot = right;

                int l = left;
                int r = right;

                while (l < r)
                {
                    if (array.IsBigger(l, pivot))
                    {
                        while (l < r && array.IsBiggerOrEqual(r, pivot))
                        {
                            r--;
                            Updated(array);
                        }
                        array.Swap(l, r);
                    }
                    l++;
                    Updated(array);
                }
                if (l > left)
                {
                    QuickSortRecursion(array, left, l - 1);
                }
                if (r < right)
                {
                    array.Swap(r, pivot);
                    QuickSortRecursion(array, r, right);
                }
            }
        }
Exemplo n.º 2
0
 public static void SelectionSort(SortingArray array)
 {
     for (int i = array.Length - 1; i > 0; i--)
     {
         int biggest = 0;
         for (int j = 0; j <= i; j++)
         {
             if (array.IsBiggerOrEqual(j, biggest))
             {
                 biggest = j;
             }
             Updated(array);
         }
         array.Swap(biggest, i);
         Updated(array);
     }
 }