C#四种排序算法

2009年4月22日星期三

C#四种排序算法











C#四种排序算法


作者:Sabine
















【导读】本文介绍了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[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();


} }


}



 


选择排序









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


} }


}



 


插入排序









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


} }


}



 


希尔排序



 希尔排序是将组分段,进行插入排序.









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


} }


}










阅读|评论|收藏|打印|举报


前一篇:C#中调用Windows API的要点
后一篇:用委托实现回调函数




评论    重要提示:警惕虚假中奖信息,点击查看详情[发评论]




  • 评论加载中,请稍候...






发评论    博客有奖征文晒生活第一季





  • 插入表情




  • 登录名:

  • 密码:

  • 找回密码

  • 注册




验证码:看不清楚数字吗?点击这里再试试。收听验证码


发评论


以上网友发言只代表其个人观点,不代表新浪网的观点或立场。




0 评论:

发表评论