经典算法C#四种排序算法

冒泡排序 

using System; 

namespace BubbleSorter 
{ 
    public class BubbleSorter 
    { 
        public void Sort(int [] list) 
        { 
            int i,j,temp; 
            bool done=false; 
            j=1while((j<list.Length)&&(!done)) 
            { 
               done=truefor(i=0;i<list.Length-j;i++) 
               { 
                    if(list[i]>list[i+1]) 
                    { 
                        done=false; 
                        temp=list[i]; 
                        list[i]=list[i+1]; 
                        list[i+1]=temp; 
                    } 
                } 
                j++; 
            } 
        } 
    } 

    public class MainClass 
    { 
        public static void Main() 
        { 
            int[] iArrary=new int[]{1,5,13,6,10,55,99,2,87,12,34,75,33,47}; 

            BubbleSorter sh=new BubbleSorter();

            sh.Sort(iArrary);
            forint m=0;m<iArrary.Length;m++) 
            {
                Console.Write("{0} ",iArrary[m]);
            }
            Console.WriteLine(); 
        }
    } 
} 

选择排序 

using System;

namespace SelectionSorter
{
    public class SelectionSorter
    {
        private int min;
        public void Sort(int[] list)
        {
            for (int i = 0; i < list.Length - 1; i++)
            {
                min = i;
                for (int j = i + 1; j < list.Length; j++)
                {
                    if (list[j] < list[min])
                    {
                        min = j;
                    }
                }
                int t = list[min];
                list[min] = list[i];
                list[i] = t;
            }
        }
    }

    public class MainClass
    {
        public static void Main()
        {
            int[] iArrary = new int[] { 1, 5, 3, 6, 10, 55, 9, 2, 87, 12, 34, 75, 33, 47 };
            SelectionSorter ss = new SelectionSorter();
            ss.Sort(iArrary);
            for (int m = 0; m < iArrary.Length; m++)
            {
                Console.Write("{0} ", iArrary[m]);
            }
            Console.WriteLine();
        }
    }
}

插入排序

using System;

namespace InsertionSorter
{
    public class InsertionSorter
    {
        public void Sort(int[] list)
        {
            for (int i = 1; i < list.Length; i++)
            {
                int t = list[i];
                int j = i;
                while ((j > 0) && (list[j - 1] > t))
                {
                    list[j] = list[j - 1];
                    --j;
                }
                list[j] = t;
            }
        }
    }

    public class MainClass
    {
        public static void Main()
        {
            int[] iArrary = new int[] { 1, 13, 3, 6, 10, 55, 98, 2, 87, 12, 34, 75, 33, 47 };
            InsertionSorter ii = new InsertionSorter();
            ii.Sort(iArrary);
            for (int m = 0; m < iArrary.Length; m++)
            { 
                Console.Write("{0}", iArrary[m]);
            }
            Console.WriteLine();
        }
    }
}

希尔排序 
 希尔排序是将组分段,进行插入排序. 

using System;

namespace ShellSorter
{
    public class ShellSorter
    {
        public void Sort(int[] list)
        {
            int inc;
            for (inc = 1; inc <= list.Length / 9; inc = 3 * inc + 1) ;
            for (; inc > 0; inc /= 3)
            {
                for (int i = inc + 1; i <= list.Length; i += inc)
                {
                    int t = list[i - 1];
                    int j = i;

                    while ((j > inc) && (list[j - inc - 1] > t))
                    {
                        list[j - 1] = list[j - inc - 1];
                        j -= inc;
                    }
                    list[j - 1] = t;
                }
            }
        }
    }

    public class MainClass
    {
        public static void Main()
        {
            int[] iArrary = new int[] { 1, 5, 13, 6, 10, 55, 99, 2, 87, 12, 34, 75, 33, 47 };
            ShellSorter sh = new ShellSorter();
            sh.Sort(iArrary);
            for (int m = 0; m < iArrary.Length; m++)
            { 
                Console.Write("{0} ", iArrary[m]);
            }
            Console.WriteLine();
        }
    }
}
原文地址:https://www.cnblogs.com/masahiro/p/10131434.html