c#排序算法的实现

一、冒泡排序(Bubble)
using System;
namespace BubbleSorter

{
       public class BubbleSorter
       {
              public void Sort(int[] list)
              {
                     int i,j,temp;
                     bool done=false;
                     j=1;
                     while((j<list.Length)&&(!done))
                     {
                            done=true;
                            for(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;
                     }//end if
       }//end for
       j++;

}//end while

}//end viod sort

}//end class

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);
                     for(int m=0;m<iArrary.Length;m++)
                     Console.Write("{0} ",iArrary[m]);
                     Console.WriteLine();
              }//end void main
       }end classmain
}//end nameplace

二、选择排序(Selection)
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;
}//endfor

}//end void sort

}//end class selectionsorter

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();
              }//end void main
       }//end classmain
}//end nameplace

 三、插入排序(InsertionSorter)
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;
                     }//end for
              }//end voidsort
       }//end classinsertionsorter

       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();
              }
       }
}

 四、希尔排序(ShellSorter)
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;
                                   }
                            }
              }//end voidsort
       }//end class shellsort

       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();
              }
       }//end class main
}//end nameplace

你可能感兴趣的:(排序算法)