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();
Console.Read();
}
}
}

 

选择排序:

 

代码
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();
}
}
}

 

 

插入排序:

 

代码
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();
}
}
}

 

 

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

 

代码
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/

posted @ 2010-06-23 14:43  xxwgcg  阅读(184)  评论(0编辑  收藏  举报