一、介绍
插入排序就是将前两个元素排好,再将第三个元素通过与前边的元素比较后插入适当的位置,再将第四个元素插入,不断重复插入与前边元素比较的操作,直到将元素都排列好。
演示如下:
视频演示:
void InsertSort(int[] data)
{
int preIdx, current = 0;
for (int i = 1; i < data.Length; i++)
{
//储存当前索引值的前边的索引值
preIdx = i - 1;
//储存当前要比较的数值
current= data[i];
//判断前边的数值是否比当前数值大,如果大说明当前值还需要往前移动,也就是preIdx对应的值
//需要向后移动,否则在preIdx的后一个索引值preIdx+1处赋值(因为所有值在比较时都往后移动了)
while (preIdx >= 0 && data[preIdx] > current)
{
data[preIdx + 1] = data[preIdx];
preIdx--;
}
data[preIdx + 1] = current;
}
}