|
Posted on
2004-08-09 00:40
iCeSnaker
阅读( 1814)
评论()
编辑
收藏
举报
冒泡法:
 Using directives#region Using directives

using System;
using System.Collections.Generic;
using System.Text;

#endregion

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 directives#region Using directives

using System;
using System.Collections.Generic;
using System.Text;

#endregion

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 directives#region Using directives

using System;
using System.Collections.Generic;
using System.Text;

#endregion

namespace InsertionSorter
  {
public class InsetionSorter
 {
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 directives#region Using directives

using System;
using System.Collections.Generic;
using System.Text;

#endregion

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();
}
}
}
 果然,数据结构和算法是万变不离其宗之根本~
|