几个C#排序算法

最基本的 冒泡排序
C# code
   
   
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>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); for int 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) { 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; 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); for int 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) { for int 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); for int 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 ) { 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(); } } }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值