你知道C# 各种排序的编写及性能吗?
2009-06-08 08:32:18 来源:WEB开发网2. 直接插入排序
基础思想: 顺序的将待排序的记录安关键码的大小插入到已排序的记录子序列的适当位置。子序列的记录个数从1开始逐渐增大,当子序列记录个数于首先表中的记录个数相同时排序完毕。
代码如下:
/// <summary>
/// 直接插入排序算法
/// </summary>
public class DirectInsertSort : IAction
{
#region IAction 成员
public void Action()
{
int[] array = Program.RandomArray();
for (int i = 1; i < array.Length; i++)
{
if (array[i] < array[i - 1])
{
int tem = array[i];
int j = 0;
for (j = i - 1; j >= 0 && tem < array[j]; j--)
{
array[j + 1] = array[j];
}
array[j + 1] = tem;
}
}
}
#endregion
}
3. 简单选择排序
基础思想:从待排序的记录序列中选择关键码最小(或)最大的记录并将它也序列中的第一个记录交换位置;然后从不包括第一个位置上的记录序列中选择关键码最小(或最大)的记录并将它也序列中的第2个记录交换位置,如此重复,直到序列只剩下一个记录为止。
更多精彩
赞助商链接