C#的四种排序算法

 
【导读】本文介绍了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();
 
} }
 
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值