C# 排序演算法的實現

來源:互聯網
上載者:User

在大學期間對資料結構中的演算法很迷茫,特別是那些排序演算法,
想起來頭痛啊,赫赫!
物是人非,現在看到這些竟然有些親切的感覺
找到這些排序演算法,同大家共用!

一、冒泡排序(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();
   }
}
}  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.