插入排序:1、从第一个元素开始默认已排序。2、取出下一个元素与已经排序好的元素相比较。3、 如果取出的元素小于已 排序的元素,已排序的元素后移一位。4、重复3直到取出的元素找到新的位置。5、将取出的元素插入到此位置
图注:
代码实现
static int[] array = new int[9] { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
static void insertionsort()//插入排序
{
//从大到小排序
for (int i = 1; i < array.Length; i++)
{
int insrtVal = array[i];//取出的元素
int insertIndex = i - 1;//找出它的前一个下标
//大于是升序 小于是降序
while (insertIndex >= 0 && insrtVal > array[insertIndex])
{
int temp;
temp = array[insertIndex + 1];
array[insertIndex + 1] = array[insertIndex];
array[insertIndex] = temp;
insertIndex--;//与已排好的元素比较
}
array[insertIndex+1] = insrtVal;//取出的元素插入此位置
}
}
static void Main(string[] args)
{
insertionsort();
for (int i = 0; i < array.Length; i++)
{
Console.WriteLine(array[i]);
}
Console.ReadLine();
}
}