//插入排序 是把无序序列中元素依次插入到有序序列中,一般是从有序序列的尾部开始比较
void InsertSort(int buf[10],int bufsize)
{
int temp = 0; //用于备份当前待插入元素的值
int current_prev = 0; //备份待插入元素的下标
//1.可以假设把数组中的第一个元素作为有序序列的元素,剩下的元素作为无序序列
for (int i = 1; i < bufsize; ++i)
{
//2.先备份当前待插入元素的值
temp = buf[i];
//3.把当前待插入元素和有序序列中的元素依次进行比较,从有序序列尾部开始
for (int j = i-1; j >= 0; j--)
{
//当前待插入元素的值 小于 待插入元素的直接前驱的元素的值
if (temp < buf[j])
{
current_prev = j; //备份当前待插入元素的直接前驱的下标
buf[j+1] = buf[j]; //后移
}
else
{
current_prev = j+1;
break;
}
}
//4.把待插入元素插入到指定位置
buf[current_prev] = temp;
}
}