几个C#排序算法

来源:互联网 发布:东方网络股票票价变了 编辑:程序博客网 时间:2024/04/29 11:38
最基本的 冒泡排序
C# code
using System; namespace BubbleSorter{public class BubbleSorter{public void Sort(int [] list){int i,j,temp;bool done=false;j=1while((j<list.Length)&&!done)){done=truefor(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);forint m=0;m<iArrary.Length;m++)Console.Write("{0} ",iArrary[m]);Console.WriteLine();}}}


选择排序 
C# code
using System;namespace SelectionSorter{public class SelectionSorter{private int min;public void Sort(int [] list){forint i=0;i<list.Length-1;i++){min=i;forint 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);forint m=0;m<iArrary.Length;m++)Console.Write("{0} ",iArrary[m]);Console.WriteLine();}}}


插入排序
C# code
using System;namespace InsertionSorter{public class InsertionSorter{public void Sort(int [] list){forint 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);forint m=0;m<iArrary.Length;m++)Console.Write("{0}",iArrary[m]);Console.WriteLine();}}}


希尔排序 希尔排序是将组分段,进行插入排序
C# code
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){forint 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);forint m=0;m<iArrary.Length;m++)Console.Write("{0} ",iArrary[m]);Console.WriteLine();}}}