Beispiel #1
0
        public static void Sort(LinkedList items, ArrayLong a, ArrayLong t, ArrayLong count, ArrayLong pref)
        {
            var length       = items.Count;
            var currentOuter = items.GetFirstNode();

            for (var i = 0; i < length - 1; i++)
            {
                var minimum      = currentOuter;
                var currentInner = items.NextOf(currentOuter);

                for (var j = i + 1; j < length; j++)
                {
                    ComparisonCount++;

                    if (currentInner.Value < minimum.Value)
                    {
                        minimum = currentInner;
                    }
                    currentInner = items.NextOf(currentInner);
                }

                if (!ReferenceEquals(minimum, currentOuter))
                {
                    SwapCount++;
                    items.Swap(minimum, currentOuter);
                }
                currentOuter = items.NextOf(currentOuter);
            }
        }
        public static void Sort(Array items, ArrayLong a, ArrayLong t, ArrayLong count, ArrayLong pref)
        {
            for (var i = 0; i < items.Length - 1; i++)
            {
                var indexOfMin = i;

                for (var j = i + 1; j < items.Length; j++)
                {
                    ComparisonCount++;

                    if (items[j] < items[indexOfMin])
                    {
                        indexOfMin = j;
                    }
                }

                if (indexOfMin != i)
                {
                    SwapCount++;
                    items.Swap(i, indexOfMin);
                }

//                DrawTextProgressBar(i + 2, items.Length);
            }
        }