rss· 投稿· 设为首页· 加入收藏· 繁體版
当前位置: 火魔网 » 程序开发 » C#

C#的几种排序算法


C#的几种排序算法

                  C#的几种排序算法
                  虚拟过客 @ 2005-06-28 11:51

                  C#算法(一)冒泡排序
                  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>list[i+1])
                      {
                       done=false;
                       temp=list;
                       list=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();
                   }
                  }
                  }

                  C#算法(二)选择排序
                  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;
                     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<iArrary.Length;m++)
                     Console.Write("{0}  ",iArrary[m]);
                    Console.WriteLine();

                   }
                  }
                  }

                  C#算法(三)插入排序
                  using System;

                  namespace InsertionSorter
                  {
                  public class InsertionSorter
                  {
                   public void Sort(int [] list)
                   {
                    for(int i=1;i<list.Length;i++)
                    {
                     int t=list;
                     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();
                   }
                  }
                  }

                  C#算法(四)希尔排序
                  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();
                   }
                  }
                  }

                
中国程序员人才网 http://www.cxyrc.com

广东程序员人才网  http://www.gdjob168.com

手提电脑商城 http://www.shouti.net

顶一下
(0)
踩一下
(0)