Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
fuss:csharp [2019/08/22 08:31]
office [Get Field or Property from Nested Class by Fully Qualified Name]
fuss:csharp [2019/08/22 08:32] (current)
office [Recursive]
Line 1703: Line 1703:
 </​code>​ </​code>​
  
 +===== Iterative =====
 +
 +<code csharp>
 +using System;
 +
 +namespace Sorts.MergeSort.Iterative
 +{
 +    public class MergeSort
 +    {
 +        private static int[] List { get; set; }
 +
 +        public MergeSort(int[] list)
 +        {
 +            List = list;
 +        }
 +
 +        public int[] Sort()
 +        {
 +            return Sort(List);
 +        }
 +
 +        private static T Min<​T>​(T x, T y) where T : IComparable
 +        {
 +            return x.CompareTo(y) < 0 ? x : y;
 +        }
 +
 +        private static T[] Sort<​T>​(T[] a) where T : IComparable
 +        {
 +            T[] b = new T[a.Length];​
 +
 +            for (int size = 1; size < a.Length; size *= 2)
 +            {
 +                for (int left = 0; left + size < a.Length; left += size * 2)
 +                {
 +                    int l = left + size;
 +                    int r = Min(l + size, a.Length);
 +
 +                    var k = left;
 +                    var i = left;
 +                    var j = l;
 +                    while (i < l && j < r)
 +                    {
 +                        if (a[i].CompareTo(a[j]) < 0)
 +                        {
 +                            b[k] = a[i];
 +                            ++i;
 +                        }
 +                        else
 +                        {
 +                            b[k] = a[j];
 +                            ++j;
 +                        }
 +
 +                        ++k;
 +                    }
 +                    while (i < l)
 +                    {
 +                        b[k] = a[i];
 +                        ++i;
 +                        ++k;
 +                    }
 +
 +                    while (j < r)
 +                    {
 +                        b[k] = a[j];
 +                        ++j;
 +                        ++k;
 +                    }
 +
 +                    for (k = left; k < r; ++k)
 +                    {
 +                        a[k] = b[k];
 +                    }
 +                }
 +            }
 +
 +            return a;
 +        }
 +    }
 +}
 +
 +</​code>​
  
  

fuss/csharp.txt ยท Last modified: 2019/08/22 08:32 by office

Access website using Tor Access website using i2p


For the copyright, license, warranty and privacy terms for the usage of this website please see the license, privacy and plagiarism pages.