冷水 @ Blogs

导航

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;;

   }

   }

   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〈iArrary.Length;;m++)

   Console.Write("{0} ",iArrary[m]);;

   Console.WriteLine();;

  }
}
}

二、选择排序(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;;

   }

  }
}

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

  }
}
}

三、插入排序(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;;

   }

  }
}

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;;

   }

   }

  }
}

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

  }
}
}

posted on 2005-06-24 10:54  冷水  阅读(128)  评论(0)    收藏  举报