C#排序算法大全

本篇文章主要介绍了C#排序算法全集,对于.NET教程有兴趣的同学可以参考一下。

 排序算法有很多种,下面介绍C#中几种常用的算法: 

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

以上就介绍了C#排序算法全集,希望对.NET教程有兴趣的朋友有所帮助。

转自:http://www.codes51.com/article/detail_2321.html

你可能感兴趣的:(算法,list,C#,System,Class)