public void Sort(T[] items)
        {
            int sortedRangeEnd = 0;

            while (sortedRangeEnd < items.Length)
            {
                int nextIndex = FindIndexOfSmallestFromIndex(items, sortedRangeEnd);
                SorterHelper <T> .Swap(items, sortedRangeEnd, nextIndex);

                sortedRangeEnd++;
            }
        }
        public void Sort(T[] items)
        {
            bool swapped;

            do
            {
                swapped = false;
                for (int i = 1; i < items.Length; i++)
                {
                    if (items[i - 1].CompareTo(items[i]) > 0)
                    {
                        SorterHelper <T> .Swap(items, i - 1, i);

                        swapped = true;
                    }
                }
            } while (!swapped);
        }
Ejemplo n.º 3
0
        private int CalculatePivot(T[] items, int left, int right, int pivotIndex)
        {
            T pivotValue = items[pivotIndex];

            SorterHelper <T> .Swap(items, pivotIndex, right);

            int storeIndex = left;

            for (int i = left; i < right; i++)
            {
                if (items[i].CompareTo(pivotValue) < 0)
                {
                    SorterHelper <T> .Swap(items, i, storeIndex);

                    storeIndex += 1;
                }
            }

            SorterHelper <T> .Swap(items, storeIndex, right);

            return(storeIndex);
        }