let it be
行到水穷处 坐看云起时

在大学期间对数据结构中的算法很迷茫,特别是那些排序算法,
想起来头痛啊,赫赫!
物是人非,现在看到这些竟然有些亲切的感觉
找到这些排序算法,同大家共享!


一、冒泡排序(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 2007-06-12 18:26  流浪浪  阅读(840)  评论(1编辑  收藏  举报