现在的位置: 首页 > 综合 > 正文

c#的四种排序

2012年04月01日 ⁄ 综合 ⁄ 共 4148字 ⁄ 字号 评论关闭
冒泡排序
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();
        }  
   }
}

 

 
选择排序
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();
               } 
       }
}
 
 

 
插入排序
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();
               } 
        }
}

 

 
希尔排序
 希尔排序是将组分段,进行插入排序.
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();          
              } 
       }
}

抱歉!评论已关闭.