paomo30000 发表于 2013-2-5 02:13:00

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<>   {       done=true;       for(i=0;i<>    {      if(list>list)      {      done=false;      temp=list;      list=list;      list=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);      for(int m=0;m<>   Console.Write("{0} ",iArrary);       Console.WriteLine();   }    }   }   二、选择排序(Selection)   using System;   namespace SelectionSorter   {    public class SelectionSorter    {      private int min;   public void Sort(int [] list)   {      for(int i=0;i<>   {      min=i;       for(int j=i+1;j<>    {       if(list<>    min=j;       }      int t=list;      list=list;      list=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<>   Console.Write("{0} ",iArrary);       Console.WriteLine();   }    }   }   三、插入排序(InsertionSorter)   using System;   namespace InsertionSorter   {    public class InsertionSorter    {   public void Sort(int [] list)   {      for(int i=1;i<>   {      int t=list;      int j=i;       while((j>0)&&(list>t))       {       list=list;       --j;       }      list=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<>   Console.Write("{0}",iArrary);       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;       int j=i;      while((j>inc)&&(list>t))      {      list=list;      j-=inc;      }       list=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<>   Console.Write("{0} ",iArrary);      Console.WriteLine();   }    }   }
页: [1]
查看完整版本: C#排序算法大全