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

转载于:https://www.cnblogs.com/oec2003/archive/2007/06/14/783436.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值