Exemplo n.º 1
0
        public void SortSequence()
        {
            for (var k = 1; k < SortedSequence.Length; k++)
            {
                var j = k;

                while (j > 1 && SortedSequence[j - 1] > SortedSequence[j])
                {
                    SortServices.Swap(SortedSequence, j - 1, j);
                    j--;
                }
            }
        }
Exemplo n.º 2
0
        public void SortSequence()
        {
            for (var k = 0; k < SortedSequence.Length; k++)
            {
                var minIndex = k;

                for (var j = k + 1; j < SortedSequence.Length; j++)
                {
                    minIndex = SortedSequence[minIndex] < SortedSequence[j] ? minIndex : j;
                }

                SortServices.Swap(SortedSequence, k, minIndex);
            }
        }
Exemplo n.º 3
0
        private static int Partition(int[] array, int left, int right)
        {
            var pivot = array[right];
            var end = left;

            for (var i = left; i < right; i++)
            {
                if (array[i] < pivot)
                {
                    SortServices.Swap(array, i, end);
                    end++;
                }
            }

            SortServices.Swap(array, end, right);
            return end;
        }
Exemplo n.º 4
0
        public void SortSequence()
        {
            var swapped = true;

            while (swapped)
            {
                swapped = false;

                for (var k = 1; k < SortedSequence.Length; k++)
                {
                    if (SortedSequence[k - 1] <= SortedSequence[k])
                    {
                        continue;
                    }
                    SortServices.Swap(SortedSequence, k - 1, k);
                    swapped = true;
                }
            }
        }
Exemplo n.º 5
0
        public void SortSequence()
        {
            var start = 0; // cocktail sort
            var end   = SortedSequence.Length;

            while (true)
            {
                var swapped = false;

                for (var k = start; k < end - 1; k++)
                {
                    if (SortedSequence[k] < SortedSequence[k + 1])
                    {
                        continue;
                    }
                    SortServices.Swap(SortedSequence, k + 1, k);
                    swapped = true;
                }

                if (!swapped)
                {
                    break;
                }

                end--;

                for (var t = end - 1; t >= start; t--)
                {
                    if (SortedSequence[t] < SortedSequence[t + 1])
                    {
                        continue;
                    }
                    SortServices.Swap(SortedSequence, t + 1, t);
                }

                start++;
            }
        }