原理:
一排序列,选择第一个作为基底,选取第二张,若比第一张小,则交换,否则顺序排放;取第三个,与第一张和第二张比较,排放;。。。以此类推;
C#代码为:
class Program
{
static void Main(string[] args)
{
int[] arr = new int[] { 9, 10, 6, 88, 75, 43, 51, 22, 10, 7 };
InsertSort(arr);
}
static void InsertSort(int[] arr)
{
int inner,temp;
for (int outer = 0; outer < arr.Length; outer++)
{
temp = arr[outer];//选定要插入的值
inner = outer;//
while (inner > 0 && arr[inner - 1] > temp)//从后向前插入,找其比较小的位置,设定之前的值已是有序
{
arr[inner] = arr[inner - 1];//右移
inner -= 1;
}
arr[inner] = temp;
Display(arr);
}
}
static void Display(int[] arr)
{
for (int i = 0; i < arr.Length; i++)
{
Console.WriteLine(" " + arr[i]);
}
Console.WriteLine("\n");
}
}