几个典型的排序(C#)

本文深入讲解了四种基本的排序算法:冒泡排序、选择排序、插入排序和希尔排序。每种算法都通过C#代码实现并附有示例,帮助读者理解其工作原理和应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

冒泡排序

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值