Ejemplo n.º 1
0
        public ICountable <T> Sort(ICountable <T> array)
        {
            var arr = (ICountable <T>)array.Clone();
            var gap = arr.Count / 2;

            while (gap > 0)
            {
                for (var i = 0; i + gap < arr.Count; i++)
                {
                    var j   = i + gap;
                    var tmp = arr[j];
                    while (j - gap >= 0 && tmp.CompareTo(arr[j - gap]) < 0)
                    {
                        arr[j] = arr[j - gap];
                        j     -= gap;
                    }

                    arr[j] = tmp;
                }

                gap /= 2;
            }

            return(arr);
        }
Ejemplo n.º 2
0
        public ICountable <T> Sort(ICountable <T> array)
        {
            var arr = (ICountable <T>)array.Clone();

            for (var i = 0; i < arr.Count - 1; i++)
            {
                for (var j = 0; j < arr.Count - 1; j++)
                {
                    if (arr[j].CompareTo(arr[j + 1]) > 0)
                    {
                        var tmp = arr[j];
                        arr[j]     = arr[j + 1];
                        arr[j + 1] = tmp;
                    }
                }
            }

            return(arr);
        }
Ejemplo n.º 3
0
        public ICountable <T> Sort(ICountable <T> array)
        {
            var arr = (ICountable <T>)array.Clone();

            for (var i = 1; i < arr.Count; i++)
            {
                var insert = arr[i];
                var pos    = i;
                while (pos > 0 && arr[pos - 1].CompareTo(insert) > 0)
                {
                    arr[pos] = arr[pos - 1];
                    pos--;
                }

                arr[pos] = insert;
            }

            return(arr);
        }
Ejemplo n.º 4
0
        public ICountable <T> Sort(ICountable <T> array)
        {
            var arr = (ICountable <T>)array.Clone();

            for (var i = 0; i < arr.Count - 1; i++)
            {
                var min = i;
                for (var j = i + 1; j < arr.Count; j++)
                {
                    if (arr[j].CompareTo(arr[min]) < 0)
                    {
                        min = j;
                    }
                }

                var tmp = arr[i];
                arr[i]   = arr[min];
                arr[min] = tmp;
            }

            return(arr);
        }