C#排序算法大全
一、冒泡排序(Bubble)
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();;
}
}
}
二、选择排序(Selection)
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();;
}
}
}
三、插入排序(InsertionSorter)
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();;
}
}
}
四、希尔排序(ShellSorter)
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();;
}
}
}
浙公网安备 33010602011771号