C#四种排序算法

本文介绍了C#的四种排序算法:冒泡排序、选择排序、插入排序和希尔排序;

 

冒泡排序:

 

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
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();
Console.Read();
}
}
}

 

选择排序:

 

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
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();
Console.Read();
}
}
}

 

 

插入排序:

 

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
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();
Console.Read();
}
}
}

 

 

希尔排序 :
希尔排序是将组分段,进行插入排序.

 

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
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();
Console.Read();
}
}
}

 

 

来自:http://www.csdn.com/

转载于:https://www.cnblogs.com/xxwgcg/articles/1763598.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值