- 插入排序:InsertSort
1.1 插入排序的原理:
插入排序的工作方式像许多人排序一手扑克牌。开始时,我们的左手为空并且桌子上的牌面向下。然后,我们每次从桌子上拿走一张牌并将它插入左手中正确的位置。为了找到一张牌的正确位置,我们从右到左将它与已在手中的每张牌进行比较。拿在左手上的牌总是排序好的,原来这些牌是桌子上牌堆中顶部的牌
1.2 代码
using SortInterface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SortItem
{
public class InsertSort : ISortItem
{
public override string SortTypeName
{
get
{
return “插入排序”;
}
}
protected override void Sort(List<int> listNumber)
{
int i;
int j;
for (i = 1; i < listNumber.Count; i++)
{
int iTempNumber = listNumber[i];
j = i - 1;
while (j>= 0&&iTempNumber < listNumber[j])
{
listNumber[j + 1] = listNumber[j];
ChangeNumber(j + 1, listNumber[j]);
j--;
}
listNumber[j + 1] = iTempNumber;
ChangeNumber(j + 1, iTempNumber);
}
}
}
}